【问题标题】:Styling a UserControl in WPF from another assembly从另一个程序集为 WPF 中的 UserControl 设置样式
【发布时间】:2010-01-14 12:20:43
【问题描述】:

我在应用程序集中定义了一个 WPF 用户控件。我正在尝试根据另一个(皮肤或主题)程序集中的样式来设置用户控件的样式。我不希望包含具有所有样式的资源字典的主题/皮肤程序集引用应用程序程序集。有没有办法做到这一点?例如

WPF应用程序集

MyUserControl.xaml

主题大会

MyStyles.xaml

我认为我可以使用

<Style x:Key="MyStyle">
    <Setter Property="Background" Value="Red" />
</Style>

在 MyStyles.xaml 资源字典中,并使用:

<l:MyUserControl Name="control" Style="{StaticResource MyStyle}" />

在 WPFApplication 程序集中使用 MyUserControl.xaml 的任何窗口中

但是,我更愿意在 MyStyles.xaml 资源字典中定位自定义用户控件:

<Style TargetType="{x:Type l:MyUserControl}" x:Key="MyStyle">
        <Setter Property="Background" Value="Red" />
    </Style>

这可能吗??

【问题讨论】:

    标签: wpf user-controls styles resourcedictionary


    【解决方案1】:

    是的,你可以做到。 Check this SO post 我在这里展示了如何以编程方式进行操作。我是用 ControlTemplates 做的,但同样的事情也适用于 Styles。

    要以声明方式执行此操作可能更简单,您可能必须以编程方式合并资源字典,在 xaml 中声明正确的静态资源和命名空间,然后只需引用所需的样式/模板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多