11

我正在从 WPF 应用程序背后的代码生成 xaml,并希望将样式添加到生成的 xaml。我正在使用资源字典来存储我的应用程序将访问的样式信息,并根据资源字典中的键应用于生成的 xaml 中的适当元素。现在我想将特定样式应用于生成的 xaml 中的所有文本框。我要做的是在没有键的资源字典中创建这种样式,我想将此样式资源添加到生成的 xaml 的资源中。我似乎找不到在没有密钥的情况下将特定资源添加到此生成的 xaml 的资源字典的方法。我的问题是,是否可以这样做,即将资源添加到用户控件(或窗口等)的资源字典中,而无需该资源的密钥?

例如,这是我要生成的 XAML:

<UserControl>
    <UserControl.Resources>
        <Style TargetType="{x:Type TextBox}">
            <!--The TextBox style-->
        </Style>
    </UserControl.Resources>
</UserControl>

谢谢!

4

1 回答 1

18

所以,我找到了一种方法来做到这一点。在添加到生成的 xaml 的资源而不是指定字符串键时,我使用了 typeof(TextBox) 并且这似乎有效。

UserControl.Resources.Add(typeof(TextBox), styleDictionary["TextBoxStyleKey"]);

这导致:

<UserControl.Resources>
    <Style TargetType="TextBox" x:Key="{x:Type TextBox}">
        <!--The Style-->
    </Style>
</UserControl.Resources>

有没有更好的方法(或任何其他方法)来做到这一点?

于 2012-05-31T13:30:13.610 回答