为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Prism WPF 中将类库 ResourceDictionary xaml

如何在 Prism WPF 中将类库 ResourceDictionary xaml

C#
凤凰求蛊 2021-11-21 15:52:17
我有一个名为 CommonStyles 的类库。CommonStyles 类库具有 ButtonStyle。我想将 ButtonStyle 引用到 Shell 窗口的按钮。我已经提到了Link。但是我没有通过这个链接得到任何明确的答案。请任何人帮我解决这个问题。按钮样式.xaml<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">    <Style x:Key="FocusVisual">        <Setter Property="Control.Template">            <Setter.Value>                <ControlTemplate>                    <Rectangle Margin="2" SnapsToDevicePixels="true" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>                </ControlTemplate>            </Setter.Value>        </Setter>    </Style>    <SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/>    <SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>    <SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>    <SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>    <SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>    <SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>    <SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>    <SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>    <SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/>    <Style x:Key="ButtonStyle" TargetType="{x:Type Button}">        <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>        <Setter Property="Background" Value="{StaticResource Button.Static.Background}"/>        <Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>        <Setter Property="BorderThickness" Value="1"/>
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

将资源字典合并到您的窗口中:


<Window x:Class="ThemesTesting.ShellWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"        

        mc:Ignorable="d"

        Height="450" Width="800">

    <Window.Resources>

        <ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>

                <ResourceDictionary Source="pack://application:,,,/CommonStyles;component/ButtonStyle.xaml"/>

            </ResourceDictionary.MergedDictionaries>

        </ResourceDictionary>

    </Window.Resources>

    <Grid>

        <Button Height="50" Width="100" Content="Click Me" Style="{StaticResource ButtonStyle}"></Button>

    </Grid>

</Window>

如果ResourceDictionary定义的程序集称为“CommonStyles”,并且它ResourceDictionary本身被命名为“ButtonStyle.xaml”并且位于CommonStyles项目的根目录中,则这应该有效。


您还需要CommonStyles.dll从ShellWindow定义的项目中添加一个引用。


查看完整回答
反对 回复 2021-11-21
  • 1 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信