我在一个应用程序组件中定义的WPF的用户控制。我试图样式基于样式在另一个(皮肤或主题)组装的用户控制。我不想主题/皮肤组件,它包含了所有引用的应用程序组件样式的资源字典。是否有这样做的方法吗? E.g。

WPFApplication装配

MyUserControl.xaml < - WPF用户控件

主题装配

MyStyles.xaml < - WPF资源字典

我假设我可以使用

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

:使用

在MyStyles.xaml ResourceDictionary中,并

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

在使用MyUserControl.xaml在WPFApplication组件中的任何窗口

然而,我宁愿定位在MyStyles.xaml ResourceDictionary中的自定义用户控制:

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

这是可能的?

有帮助吗?

解决方案

是的,你可以做到这一点。 选中此SO帖子在这里我展示了如何做到这一点编程。我与CONTROLTEMPLATES做,但同样的事情适用于样式为好。

要做到这一点声明可能更简单,您可能需要编程合并您resourcedictionaries,声明在XAML中正确的StaticResources和命名空间,然后只引用您想要的样式/模板。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top