C# 如何实现一个WPF导航控件来呈现各种派生类型的帧,所有这些都使用UserControl作为基础
所以我有一个场景,我想实现一个从UserControl派生的WPF NavigationControl。在这个NavigationControl上,我有两个要求:处理向后/向前导航的历史记录(足够简单),以及能够直观地显示从NavigationFrameBase类型派生的任何控件。NavigationFrameBase,也是从UserControl派生的,可能以多种形式呈现,因为多个控件将从该类型继承,但是NavigationFrameBase应该向NavigationControl提供一种通知形式,通知它与从NavigationFrameBase派生的类型的内容交互的用户已请求导航操作,从而允许NavigationControl显示新的NavigationFrameBase 我的问题有两个:C# 如何实现一个WPF导航控件来呈现各种派生类型的帧,所有这些都使用UserControl作为基础,c#,.net,wpf,xaml,user-controls,C#,.net,Wpf,Xaml,User Controls,所以我有一个场景,我想实现一个从UserControl派生的WPF NavigationControl。在这个NavigationControl上,我有两个要求:处理向后/向前导航的历史记录(足够简单),以及能够直观地显示从NavigationFrameBase类型派生的任何控件。NavigationFrameBase,也是从UserControl派生的,可能以多种形式呈现,因为多个控件将从该类型继承,但是NavigationFrameBase应该向NavigationControl提供一种通知
- 为了包含NavigationFrameBase的实例,设计NavigationControl的最佳方法是什么
- WPF中处理子->父请求系统的正确方法是什么?路由/附加事件似乎是正确的,但我可以看到一个中介模式服务于相同的功能
如果不了解更多关于预期用例的信息,就很难给出更多细节。这与框架或导航窗口有什么区别?这是MS surface ScatterView项目的一部分。假设第一个选项就足够了,我不知道如何用XAML在WPF中建立这些关系我的XAML经验已经过时了(有几年了),但我相信当我做这种事情时,我会使用NavigationControl的代码来连接我在加载子NavigationFrameBase控件时关心的事件。所以它根本不是XAML,只是C#。我可以这样做,但它看起来不太像WPFlike:-p没错,但是如果你想到一个标准菜单,你通常不会指定菜单在点击菜单项时应该有什么行为(这是在幕后完成的)。在XAML中,实际上只指定要触发的本地事件处理。