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