4

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

4

2 回答 2

9

如果您不想对字符串进行两次编码,您可以将其存储为静态变量,这里我将它放在 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}}" 
于 2012-06-13T13:36:12.153 回答
2

在 XAML 中,您可以像这样引用它:

{StaticResource myResource}

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

于 2012-06-13T13:29:12.350 回答