0

我有一个 WPF 页面用作输入表单,其中一侧包含许多控件,另一侧包含流文档阅读器。

我想将此文档阅读器的内容设置为在加载表单时加载的流文档的特定部分(通过加载的事件)。

我发现一篇文章解释了如何使用片段来执行此操作,但显示的示例仅以 XAML 表示。

在我的情况下,当用户将焦点放在一个控件上时,我需要更新流文档阅读器的文档属性(我已经连接了事件),因此我需要在后面的代码中而不是 XAML 中执行此操作。

我尝试将文档属性设置为:

Document#Control_Sport

其中 Document 是 XAML 流文档的名称,而 Control_Sport 是我需要导航到的片段的名称。

但是,这会产生错误,它不喜欢井号存在。

我尝试查看 MSDN,但仅查看其 XAML。有没有办法通过代码做到这一点?

任何帮助,将不胜感激。

菲利克斯,

链接到 MSDN 文章:http: //msdn.microsoft.com/en-us/library/ms750478.aspx#FragmentNavigation

4

2 回答 2

1

您可以通过调用导航到Blocka中的任何内容。FlowDocumentBlock.BringIntoView

于 2010-02-02T04:08:34.553 回答
1

首先,在 Page 或 Window 对象中创建一个 Frame 对象。将JournalOwnership属性设置为"OwnsJournal"将为文档提供自己的导航栏(前进和后退箭头加上历史记录)。您可能还需要添加其他参数来调整大小并在文档中定位框架,但我没有在示例中包含它们,因为我不知道您的应用程序需要什么:

<Frame Name="MyFrame" JournalOwnership="OwnsJournal" />

然后,为您的文档片段创建一个包 URI。假定该文档与应用程序的可执行文件位于同一目录中;您需要在路径中添加更多内容以导航到项目中文档所在的目录:

Uri MyUri = new Uri("pack://application:,,,/MyXamlDocument.xaml#MyFragment");

然后,从按钮的 Click 处理程序内部导航到它,或者您希望启动导航的任何其他方式:

MyFrame.Navigate(MyUri);
于 2013-10-29T17:54:22.433 回答