【问题标题】:WPF Adding style resource without key in code behindWPF添加样式资源而无需在后面的代码中键入
【发布时间】:2012-05-31 13:10:16
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: wpf


    【解决方案1】:

    所以,我找到了一种方法来做到这一点。在添加到生成的 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>
    

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

    【讨论】:

    • 仅供参考,这是可行的,因为如果您不添加 x:Key,则使用 TargetType 作为键。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    • 2011-12-21
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多