WPF框架下,窗体的嵌套显示
生活随笔
收集整理的這篇文章主要介紹了
WPF框架下,窗体的嵌套显示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
記得以前在Winform中,用一個panel控件當作容器,成功實現了不同窗體的嵌套顯示,可是WPF中已經沒有了這個控件,想要實現這個效果,這里就不得不提UserConrol了:
"用戶控件"繼承自UserControl,而UserControl繼承自ContentControl,也就是內容控件
UserControl和Window是在同一個層次上的,同樣具有xaml和cs文件
主窗體下:
public partial class OperatorMain : Window{public OperatorMain(){InitializeComponent();MainViewModel model = new MainViewModel();this.DataContext = model;}}MainViewModel:
public class MainViewModel : NotifyBase{private FrameworkElement _mainContent;public FrameworkElement MainContent{get { return _mainContent; }set { _mainContent = value;this.DoNotify(); }}public CommandBase NavChangedCommand { get; set; }public MainViewModel(){this.NavChangedCommand = new CommandBase();this.NavChangedCommand.DoExecute = new Action<object>(DoNavChanged);this.NavChangedCommand.DoCanExecute = new Func<object,bool>((o) => true);}private void DoNavChanged(object obj){Type type = Type.GetType("InternetBarSystemUI.View.Operator." + obj.ToString());ConstructorInfo cti = type.GetConstructor(System.Type.EmptyTypes);this.MainContent = (FrameworkElement)cti.Invoke(null);}}用戶控件之中的代碼:
public partial class frmConsume : UserControl{public frmConsume(){InitializeComponent();MainViewModel model = new MainViewModel();this.DataContext = model;}}總結
以上是生活随笔為你收集整理的WPF框架下,窗体的嵌套显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 实现MQTT客户端
- 下一篇: WPF 最简方法使用自己定制的 WPF