广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >WPF框架Prism中区域Region用法介绍
  • 893
分享到

WPF框架Prism中区域Region用法介绍

2024-04-02 19:04:59 893人浏览 泡泡鱼
摘要

什么是区域(Region)? 在理解这个之前, 首先需要了解一下, 在最常见的开发模式当中, 我们去设计某个页面的时候, 实际上界面元素在设计的时候已经被固定。 举个简单的例子,当我

什么是区域(Region)?

在理解这个之前, 首先需要了解一下, 在最常见的开发模式当中, 我们去设计某个页面的时候, 实际上界面元素在设计的时候已经被固定。

举个简单的例子,当我们去设计如下页面, 它包含Header、Menu、Content内容。

因此我们可以为这个页面设计一些元素, 例如:

1.Menu 可以放置ListBox

2.Content 可以放置一个ContentControl

3.Header 可以放置一些ToolBar

注:为了演示需要, 对应区域的控件均采用TextBlock演示, 实际开发中, 往往我们会采用的各类控件。

<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto" />
            <RowDefinition />
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="auto" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>

        <Border Grid.ColumnSpan="2" Background="#0063B1">
            <TextBlock  Padding="10"  FontSize="30" Text="Header" />
        </Border>

        <Border Grid.Row="1" Background="#F08B6A">
            <TextBlock Padding="10" FontSize="30" Text="Menu" />
        </Border>

        <Border  Grid.Row="1" Grid.Column="1" Background="#948CC0">
            <TextBlock Padding="10" FontSize="30" Text="Content" />
        </Border>
    </Grid>

那么, 回到Region主题, 在Prism当中, 一个页面我们可以不再为其固定显示的内容, 而这种概念变成了区域(Region)划分的概念。

将页面显示的区域划分称N个Region, 此时, 每个Region将变成了动态分配区域。它将负责承担我们的UI组件或者控件。

定义Region

可以使用XAML或代码创建定义Region

  • RegionManager.RegionName(XAML)
  • RegionManager.SetRegionName(Code)

RegionManager功能

  • 维护区域集合
  • 提供对区域的访问
  • 合成视图
  • 区域导航
  • 定义区域

定义Region步骤

Region 示例

当我们为界面的元素指定了区域名称(XAML或者代码的方式), 下一步则是通过IRegionManager接口实例设置对应的区域显示内容。

在该示例当中, 我们创建了3个模块, 然后注册在当前的页面当中, 分别为Header、Menu、Content。如下所示:

运行之后, 界面将显示具有3个模块组成的页面, 如下所示:

注意事项

细心的网友可能已经看到了, 上面的代码中, 为3个ContentControl注册了对应的区域, 然后显示3个自定义的控件。

那么, 是不是同样可以在其它控件元素上注册Region?

是的, 在Prism中, 控件都支持注册Region, 只是有些控件需要自己实现一个RegionAdapters(区域适配器)

什么是RegionAdapters?

假设在应用程序的某个区域, 需要显示我们定义的视图,这个时候实际上利用了RegionAdapter。

该类负责将传入我们定义的视图到指定的Region当中。

Prism提供了许多内置得RegionAdapter

ContentControlRegionAdapter

ItemsControlRegionAdapter

SelectorRegionAdapter

  • - ComboBox
  • - ListBox
  • - Ribbon
  • - TabControl

注:除此之外, 如果想要实现控件作用域Region, 则必须创建自己的自定义Region, 因为一旦你不这么做, 则会引发异常。

创建Custom RegionAdapter

首先, 我们在这里创建一个类, 然后继承于RegionAdapterBase, 下面我们创建了一个基于StackPanel的自定义适配器。

下面, 我们需要重写其中的CreateRegion方法。

CreateRegion方法返回一个IRegion接口, 这里我们可以创建基于一下三种类型的区域类型。

  • SingleActiveRegion
  • AllActiveRegion
  • Region

然后,还需要重写其中的Adapt方法。

最后一步, 我们需要在PrismApplication当中, 注册我们创建好的自定义适配器,如下所示。

到此这篇关于WPF框架Prism中区域Region用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: WPF框架Prism中区域Region用法介绍

本文链接: https://www.lsjlt.com/news/138760.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • WPF框架Prism中区域Region用法介绍
    什么是区域(Region) 在理解这个之前, 首先需要了解一下, 在最常见的开发模式当中, 我们去设计某个页面的时候, 实际上界面元素在设计的时候已经被固定。 举个简单的例子,当我们...
    99+
    2022-11-13
  • WPF框架Prism中区域Region怎么用
    这篇文章主要介绍WPF框架Prism中区域Region怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是区域(Region)在理解这个之前, 首先需要了解一下, 在最常见的开发模式当中, 我们去设计某个页面的...
    99+
    2023-06-29
  • WPF框架Prism中ViewInjection用法介绍
    View View通常指的是, 我们定义的页面, 而在模块化的系统当中, 我们往往称之为用户控件(UserControl)。对于模块化系统而言, 每个模块当中都有N个用户控件组成, ...
    99+
    2022-11-13
  • WPF框架Prism中ViewModelLocator用法介绍
    建立连接 在WPF当中,需要为View与ViewModel建立连接, 我们需要找到View的DataContext, 如下所示: 建立连接的方式 如果你使用了解WPF当中如何绑定D...
    99+
    2022-11-13
  • WPF框架Prism中对话框Dialog用法介绍
    什么是Dialog 对话框实际上是我们应用程序经常用到的一个功能, 类如: Show、ShowDialog。 可以弹出一个我们指定的窗口, 仅此而已, 那么在Prism当中, Dia...
    99+
    2022-11-13
  • WPF框架Prism中导航Navigation用法介绍
    使用场景 在普遍的业务场景当中, 必不可少的是页面切换, 而Prism就可以使用Navigation功能来进行页面导航, 在不同的场景当中会有各种用法, 例如在切换页面验证、传递参数...
    99+
    2022-11-13
  • WPF框架Prism中模块Module用法
    什么是模块(Module) 本质上来说, 对于一个应用程序而言, 特定功能的所有View、Logic、Service等都可以独立存在。那么意味着, 每个独立的功能我们都可以称之为模块...
    99+
    2022-11-13
  • Prism区域管理器IRegionManager用法介绍
    概要 本文主要介绍Prism的IRegionManager, 主要分析源代码的执行流程, 来介绍内部实现的几个核心接口调用过程。 通过本文, 你可以熟练的掌握Prism当中以下接口的...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作