Prism框架的Regions,可以把用户控件、窗体等附加到主窗体指定的控件中。
【实战】
1、新建Prsm Blank App(WPF) 项目:Demo0810
Views文件夹处,鼠标右键——添加——新建项——Prism——Prism UserControl(WPF),名称默认
MainWindow.xaml.cs代码:
using System.Windows; using Prism.Regions; //引入Regions namespace Demo0810.Views { public partial class MainWindow : Window { public MainWindow(IRegionManager regionManager) //定义变量 { InitializeComponent(); //将PrismUserControl1用户控件加载到主窗体的ContenRegion控件中 regionManager.RegisterViewWithRegion("ContentRegion", typeof(PrismUserControl1)); } } }
PrismUserControl1.xaml代码:其他文件原封不动
<UserControl x:Class="Demo0810.PrismUserControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:prism="http://prismlibrary.com/" prism:ViewModelLocator.AutoWireViewModel="True"> <Grid> <TextBlock Text="View A" FontSize="38" /> </Grid> </UserControl>
或者MainWindow.xaml.cs不更改(保持极简纯粹),更改MainWindowViewModel.cs的代码:推荐
using Prism.Mvvm; using Prism.Regions; //引入Regions namespace Demo0810.ViewModels { public class MainWindowViewModel : BindableBase { private string _title = "Prism Application"; public string Title { get { return _title; } set { SetProperty(ref _title, value); } } public MainWindowViewModel(RegionManager regionManager) //定义变量 { //将PrismUserControl1用户控件加载到主窗体的ContenRegion控件中 regionManager.RegisterViewWithRegion("ContentRegion", typeof(PrismUserControl1)); } } }
原文:https://www.cnblogs.com/xixixing/p/11330754.html