如何在一个地方定义x:资源键并在XAML和后面的代码中使用它

时间:2012-06-13 13:22:40

标签: wpf xaml resources

标题中的问题几乎总结了一下。我在XAML中定义了一些资源对象,我也想在后面的代码中访问它。那么有没有办法在一个地方定义x:Key而不是硬编码x:XAML和后面的代码中的Key(作为字符串)?

2 个答案:

答案 0 :(得分:6)

如果您不想对字符串进行两次编码,可以将其存储为静态变量,这里我将它放在App.cs中

public partial class App : Application
{
    public static string Key1 = "testKey";
}

如果您想在应用的资源中使用此密钥,可以这样做。

<Application.Resources>        
   <SolidColorBrush x:Key="{x:Static local:App.Key1}"/>
</Application.Resources>

在C#中,您不再需要使用确切的字符串名称,因为它位于App

var brush = FindResource(App.Key1);

要在XAML中使用资源,请使用

<TextBox Background="{StaticResource {x:Static local:App.Key1}}" 

答案 1 :(得分:2)

在XAML中,您可以像:

一样引用它
{StaticResource myResource}

在代码隐藏中,您将使用FindResource方法。