如何使用单独的 WpfControlLibrary 中的 ResourceDictionary 将样式设置为 Prism 6 模块中的 RadioButton?

2024-03-06

在我的 Prism 6 WPF 模块化应用程序中,我使用名为“CommonControlLibrary”的 WPF ControlLibrary 项目,该项目具有包含 ResourceDictionary 的“SwitchButtonStyle.xaml”文件。ResourceDictionary 用于在我的应用程序中设置单选按钮的样式。以下是我的应用程序结构:

下面我部分展示了ResourceDictionary。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:local="clr-namespace:CommonControlLibrary"
                xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                mc:Ignorable="d" 
                xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing" >

<!--Style for view-switching radiobuttons-->
<Style x:Key="MainViewRadioButtonStyle" TargetType="RadioButton">
    <Setter Property="Background" Value="{x:Null}"/>
    <Setter Property="Foreground" Value="#FF483D8B"/>
    <Setter Property="Padding" Value="3"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="FontSize" Value="12"/>
    <Setter Property="BorderBrush" Value="#FF6A5ACD" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="RadioButton">
                <Grid>
    . . . . . . . . . . . . . . . .

我的应用程序中有两个 Prism 6 模块“授权”和“校准”(见上图)。每个模块都有相应的View和RadioButton来切换到该View。下面我显示了 RadioButton 切换到“校准”视图的 XAML:

<UserControl x:Class="Calibration.Views.CalibrationNavigationItemView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:prism="http://prismlibrary.com/"
         xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
         prism:ViewModelLocator.AutoWireViewModel="True">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>

    <RadioButton GroupName="MainNavigation" IsChecked="{Binding Path=IsChecked, Mode=TwoWay}"
                 AutomationProperties.AutomationId="CalibrationRadioButton">
        Calibration
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="Checked">
                <prism:InvokeCommandAction Command="{Binding NavigateToCalibrationCommand}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </RadioButton>
</Grid>

这两个 RadioButton 在 XAML 中都是相同的,并且每个都需要使用 ResourceDistionary 中的 MainViewRadioButtonStyle 进行样式设置,该样式位于“CommonControlLibrary”中的“SwitchButtonStyle.xaml”中。如何在每个 RadioButton 的 XAML 中包含对 ResourceDictionary 的引用,以将“MainViewRadioButtonStyle”样式应用于 Prism 6 模块中的 RadioButton?请在“校准”RadioButton XAML 示例中向我展示。


1) 在视图顶部添加合并资源字典的 xaml 代码:

<UserControl.Resources>

    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>

            <ResourceDictionary Source="pack://application:,,,/CommonControlLibray;component/SwitchButtonStyle.xaml" />

2.) 为单选按钮添加 Style 属性:

<RadioButton Style={StaticResource MainViewRadioButtonStyle}" ...

or

为单选按钮添加隐式样式:

<Style TargetType="RadioButton" BasedOn="{StaticResource MainViewRadioButtonStyle}" />

隐式样式将应用于all视图上的单选按钮

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用单独的 WpfControlLibrary 中的 ResourceDictionary 将样式设置为 Prism 6 模块中的 RadioButton? 的相关文章

随机推荐

  • SQLAlchemy 中是否有 LISTAGG Within GROUP 等效项?

    这是一个简单的 Oracle 表 food person pizza Adam pizza Bob pizza Charles ice cream Donald hamburger Emma hamburger Frank 以下是我想做的聚
  • numpy任意精度线性代数

    我有一个 numpy 2d 数组 中 大尺寸 比如说 500x500 我想找到它的元素指数的特征值 问题是某些值非常负 800 1000 等 并且它们的指数下溢 意味着它们非常接近零 因此 numpy 将它们视为零 无论如何可以在 nump
  • PHP_SELF 和 XSS

    我发现一篇文章声称 SERVER PHP SELF 容易受到 XSS 攻击 我不确定我是否理解正确 但我几乎可以肯定这是错误的 这怎么可能容易受到 XSS 攻击
  • 画布不绘制图像

    我只是想弄清楚如何在画布上绘制图像 我按照 W3 学校的教程进行操作 但是当我自己尝试时 它似乎不起作用 我将下面的代码复制并粘贴到 HTML 文件中 但图像从未加载到画布中 我将图片下载到同一目录中 我四处询问 上网查了一下 但似乎没有人
  • 使用 php 透视 html 表

    我有这个 php 代码 query production SELECT uploadedby as name sum points as points date format uploaddate Y m d as date FROM im
  • 保护非空单元格VBA

    我添加了 VBA 代码 双击时将时间或日期插入单元格 我设法让事情进展顺利 我正在努力解决的问题是在输入时间 日期后保护和锁定单元格 我已经到了这样的地步 当我双击 尝试编辑非空单元格时 我收到运行时错误 调试后 让我失望的行是 Targe
  • Android BLE 特性 getValue 在 API 级别 33 中已弃用,我获取该值的正确方法是什么?

    Android BLE 特性 getValue 在 API 级别 33 和developer android 中已弃用蓝牙Gatt特性 https developer android com reference android blueto
  • 在 Rmarkdown 中的参考书目后添加图形和表格

    我想在 R Markdown 文档中的参考书目后面添加表格和图形 但是 R Markdown 文档默认情况下始终将参考书目添加到报告的末尾 有没有一种简单的方法可以在参考文献之后添加内容到文档中 尝试的解决方案 A 之前的回答 https
  • 如何向 Exuberant Ctags 配置文件添加注释?

    我可以使用什么字符在 Exuberant Ctags 中发表评论 ctags file 我想添加注释和解释 也许还可以禁用一些正则表达式 但我找不到 ctags exuberant 接受的任何评论字符 我不断收到警告 ctags Warni
  • 我可以使用实体框架(模型优先)来生成组合键吗?

    我正在使用实体框架的 模型优先 方法设计一个数据库 基于我收到的反馈非常好 https stackoverflow com questions 4969133 database design problem在这里 我对数据库的一部分采用超类
  • Rmarkdown nocite 不显示 pdf 中的引用

    找到不起作用的方法是很困难的 我想使用nocite命令来显示我在文档中未引用的参考书目的条目 但我不明白为什么它不起作用 这是一个 MWE title Test date r format Sys time d B Y output pdf
  • Nodejs 使用 npm + package.json 解决依赖关系

    我的项目结构如下 index js package json node modules Service A main js package json Service B main js package json 当我做npm install
  • Android 5.1.1 及更高版本 - getRunningAppProcesses() 仅返回我的应用程序包

    看来谷歌终于关闭了获取当前前台应用程序包的所有大门 棒棒糖更新后 杀死了getRunningTasks int maxNum http developer android com intl zh cn reference android a
  • 如何检测网站是否无法通过 iframe 嵌入?

    我正在尝试在 iframe 中嵌入一些随机站点 我收到此错误 Refused to display document because display forbidden by X Frame Options 我愿意尊重他们的意愿而不嵌入它
  • 如何将JsDoc变成“混合”类型?

    简单的问题 如何记录 混合类型 我知道我可以列出所有可能的类型 例如 null undefined String Number Object 最终发现自己错过了一个并使其变得过于复杂 我尝试使用 Mixed 关键字 但它在许多 IDE 例如
  • JavaScript 性能? - 将事件放在html标签中,或者绑定它们?

    我想知道哪个性能更好 我有一个 网络应用程序 之类的东西 它有很多 javascript 单击按钮时 隐藏的 div 变得可见 这个新 div 有 5 个按钮 哪个对性能更好 1 将按钮点击事件放在每个按钮的 html 标签中 例如 onC
  • 多线程Socket通信客户端/服务器

    我写完了一个客户端 服务器套接字通信程序 运行良好 现在我正在尝试弄清楚如何制作它 以便我可以同时与服务器建立多个客户端连接 我环顾四周 似乎有不止几种不同的方法可以做到这一点 所以我来这里向你们寻求帮助 建议 我的服务器 public c
  • GC 根和局部变量

    在看着定时器文档 http msdn microsoft com en us library system timers timer interval aspx我遇到了以下带有此评论的示例 Normally the timer is dec
  • 根据 Sidekiq 或 Rails 的调用记录到不同的记录器

    我有一个基于 Rails 3 2 的应用程序 它使用 Sidekiq 2 12 来运行后台作业 Sidekiq 作业可以调用与交互式 Rails 应用程序相同的方法 我希望这些方法在从 Sidekiq 调用时记录到 Sidekiq 日志 并
  • 如何使用单独的 WpfControlLibrary 中的 ResourceDictionary 将样式设置为 Prism 6 模块中的 RadioButton?

    在我的 Prism 6 WPF 模块化应用程序中 我使用名为 CommonControlLibrary 的 WPF ControlLibrary 项目 该项目具有包含 ResourceDictionary 的 SwitchButtonSty