首页 > 其他分享 >WPF-Prism Region使用

WPF-Prism Region使用

时间:2024-08-29 19:25:23浏览次数:14  
标签:控件 RegionManager Region MainLeft Prism 区域 SetRegionName WPF

  Region:

    区域,我的理解,就是窗体上的一部分地方,不是整个窗体。所以区域里都是用户控件UserControl,就是为了解决在窗体上显示一个自定义的公用的控件的。

  共两种用法:

  1、原始的方法(不借助prism的依赖注入),用IRegionManager接口,来完成区域的注册和设置。

    注册代码如下:

manager.RegisterViewWithRegion("HeaderRegion", typeof(Header));
manager.RegisterViewWithRegion("LeftRegion", typeof(MainLeft));
manager.RegisterViewWithRegion("MainRegion", typeof(MainRight));

上面的Header、MainLeft、MainRight是三个UserControl,这里先把他注册并命名,供设置用

设置代码:

RegionManager.SetRegionName(HeaderCtrl, "HeaderRegion");
RegionManager.SetRegionName(MainLeftCtrl, "LeftRegion");
RegionManager.SetRegionName(MainRightCtrl, "MainRegion");

依据上面的区域名称,把他们设置到要显示的控件上。HeaderCtrl是控件的名称。如图:

 

 上图中prism:RegionManager.RegionName="LeftRegion”,这个也是设置要显示区域的,等同于上面的SetRegionName方法。还有图上的ContentRegion是第2种方法用到的,这里不用管。

  2、借助prism的依赖注入,来完成区域Region的注册和设置。

  1)、首先需要在app文件下的RegisterTypes方法中,将需要导航的三个(Header、MainLeft、MainRight)用户控件注册上,代码如下:    

containerRegistry.RegisterForNavigation<Header>("H");
containerRegistry.RegisterForNavigation<MainLeft>();
containerRegistry.RegisterForNavigation<MainRight>();

第一个我加了个重命名,可以不加。然后在需要显示的地方加下面代码,如下两张图

      

把MainLeft控件加到名为ContentRegion的区域中

 

标签:控件,RegionManager,Region,MainLeft,Prism,区域,SetRegionName,WPF
From: https://www.cnblogs.com/dachuang/p/18387391

相关文章

  • wpf异常捕获
    protectedoverridevoidOnStartup(StartupEventArgse){Trace.Listeners.Add(newTextWriterTraceListener("ErrorLog.txt"));Trace.AutoFlush=true;AppDomain.CurrentDomain.UnhandledException+=CurrentDomain_UnhandledException;......
  • WPF Livecharts C# Column name change
    //xaml<Windowx:Class="WpfApp299.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • wpf prism用法总结
    1、App文件中RegisterTypes方法:此方法中主要是注册、绑定视图、实体的。使用RegisterForNavigation方法,可以将视图注册成导航,且绑定对应的viewmodel,视图被调用后自动绑定这个viewmodel。注册成导航后,相当于公开了此视图允许调用。同时同一个视图可以绑定多个viewmodel。......
  • WPF 现代化开发教程:使用 Microsoft.Extensions.Hosting 和 CommunityToolkit.Mvvm
    介绍随着WPF应用程序的复杂性增加,使用现代化的开发工具和模式变得尤为重要。本教程将指导你如何使用Microsoft.Extensions.Hosting和CommunityToolkit.Mvvm来开发一个现代化的WPF应用程序。这些工具为开发者提供了依赖注入、应用程序生命周期管理、MVVM模式支持等功能。先决......
  • WPF draw thumbs on livecharts and drag drop thumb
    //xaml<Windowx:Class="WpfApp299.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • Prism:结语
    Prism:结语prism基本功能也已经学完了,在学习过程中遇到过很多问题,其中就有一点条我就一直困惑,那就是:依赖注入什么是依赖注入:(gpt写的)依赖注入(DependencyInjection,简称DI)是一种设计模式和编程技术,用于实现控制反转(InversionofControl,IoC)。它通过将对象的依赖项从对象内部移到......