Metro应用程序中SetResourceReference的等效性是多少?

时间:2012-05-15 15:23:08

标签: wpf windows-8 windows-runtime winrt-xaml

我正在尝试设置对我正在后面的代码中创建的控件中的样式的引用。通常在WPF中,我使用SetResourceReference方法。但是,我发现Metro中的Button属性似乎不存在此方法。

Metro应用程序中的等效内容是什么?

2 个答案:

答案 0 :(得分:1)

与Silverlight一样,WinRT没有这种技术(它缺少“DynamicResource”标记扩展以及随之而来的支持)。

您可以尝试以下方法之一:

例如,要设置样式,您可以执行以下操作。

使用Resources

<Page.Resources>
    <Style TargetType="Button" x:Key="boldButton">
        <Setter Property="FontWeight" Value="Bold" />
    </Style>               
</Page.Resources>

和一个按钮:

<Button Name="btn" Content="Button" />

在背后的代码中:

btn.Style = this.Resources["boldButton"] as Style;

答案 1 :(得分:1)

我结束了使用custom implementation of TryFindResource shown here。在另一个答案中建议使用this.Resources属性的问题是它不会在整个资源树中搜索可能位于App资源中的资源。我提供的链接中的实现就是这样做的。它基于Silverlight中常见的一些问题。