WPF-导航到窗口中包含的框架内的不同页面



我有一个包含框架的主窗口。目的是在框架内显示不同的视图(页面)。

<Window>
  <Frame Source="Page1.xaml" />
</Window>

Page1.xaml属于Page类型,包含一个按钮,比如Button1。点击按钮1后,我想导航到Page2.xaml。然而,以下内容在运行时中断了应用程序:

private void OnButton1Click(object sender, SelectionChangedEventArgs e)
{
   NavigationService.Content = null; //I tried this thinking exception is caused because Page1.xaml is already present in frame. But no luck! :(
   NavigationService.Navigate(new Uri("Page2.xaml", UriKind.Relative));
}

它抛出XamlParseException"Set属性"System.Windows.FrameworkElement.Style"抛出异常。"内部异常读取指定的元素已经是另一个元素的逻辑子元素。先断开连接

我怀疑这也与样式资源有关,因为如果我在Page2.xaml中保留一个空白网格,导航就不会出现问题。:-|

编辑:开始一个接一个地向Page2.xaml添加带有样式的元素,并意识到只有当我添加将嵌入图像(图像来自单独的dll,Assets)设置为按钮内容的样式资源时,它才会中断。有问题的样式在一个单独的Style.xaml文件(资源字典)中定义如下:

<Style x:Key="BackButton" TargetType="Button">
   <Setter Property="Content">
      <Setter.Value>
         <Image Source="/Assets;component/Images/back.png" />
      <Setter.Value>
   </Setter>
</Style>

如果我对Setter for Content属性进行注释,则导航工作正常。因此,作为一个快速解决方案,我在Page2.xaml.

上添加了返回图像作为按钮的直接内容

这来自工作代码
但它不使用NavigationService
它直接更新帧

PageDocFieldDetail pageDocFieldDetail = new PageDocFieldDetail();
framePageDocFieldDetail.Content = pageDocFieldDetail;

相关内容

  • 没有找到相关文章

最新更新