框架内的 Wpf 导航框架,导航按钮在子项中被禁用
Wpf navigation frame inside a frame, navigation button are disabled in child
我有解决方案
- (A) wpf 用户控件项目(库 dll):它有一个用户控件,它有一个框架、自己的导航按钮和一个菜单,用于在一些页面之间导航,这些页面也在这个项目中定义。
- (B) wpf application (test): 我用来测试dll。它只有一个主要的window,它使用了上一个项目中定义的用户控件。
- (C) wpf 应用程序(比方说最终项目)更复杂。这也有一个带有自己的导航按钮和自己的菜单的框架。该框架必须显示此项目中定义的几个页面以及 A 的用户控件。
当我使用 (B) 测试 (A) 时一切正常。
当我用(C)显示(A)时,A的导航按钮被禁用,而是C的导航按钮适用于A和C的页面。
看起来所有发送到C的框架的命令都被发送到A的父框架。
怎么可能?
我的导航按钮带有自定义 UIRoutedCommand
private void Backward_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = ChildFrame?.CanGoBack??false;
e.Handled = true;
}
当A被C使用时,ChildFrame?.CanGoBack始终为false
可能是我写的太快了,没有看MSDN文档...
<Frame x:Name="ChildFrame" NavigationUIVisibility="Hidden" JournalOwnership="OwnsJournal">
JournalOwnership="OwnsJournal" 拯救了我的一天
我有解决方案
- (A) wpf 用户控件项目(库 dll):它有一个用户控件,它有一个框架、自己的导航按钮和一个菜单,用于在一些页面之间导航,这些页面也在这个项目中定义。
- (B) wpf application (test): 我用来测试dll。它只有一个主要的window,它使用了上一个项目中定义的用户控件。
- (C) wpf 应用程序(比方说最终项目)更复杂。这也有一个带有自己的导航按钮和自己的菜单的框架。该框架必须显示此项目中定义的几个页面以及 A 的用户控件。
当我使用 (B) 测试 (A) 时一切正常。 当我用(C)显示(A)时,A的导航按钮被禁用,而是C的导航按钮适用于A和C的页面。
看起来所有发送到C的框架的命令都被发送到A的父框架。
怎么可能?
我的导航按钮带有自定义 UIRoutedCommand
private void Backward_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = ChildFrame?.CanGoBack??false;
e.Handled = true;
}
当A被C使用时,ChildFrame?.CanGoBack始终为false
可能是我写的太快了,没有看MSDN文档...
<Frame x:Name="ChildFrame" NavigationUIVisibility="Hidden" JournalOwnership="OwnsJournal">
JournalOwnership="OwnsJournal" 拯救了我的一天