如何在C#中使用SolidColorBrush的XAML资源?

eit*_*ani 1 c# xaml winrt-xaml

我在 App.XAML 文件中定义资源:

 <SolidColorBrush x:Key="ActivePanelBackgBrush" Color="#FF77FF83"/>

 <SolidColorBrush x:Key="NonActivePanelBackgBrush" Color="#FFFF7777"/>
Run Code Online (Sandbox Code Playgroud)

在我的 C# 代码中,我想将网格的背景设置为该颜色。我怎么做?

谢谢

Far*_*yev 5

您可以从 App.xaml 中的资源中获取对象,如下所示:

 var brush = Application.Current.Resources["NonActivePanelBackgBrush"] as SolidColorBrush;
Run Code Online (Sandbox Code Playgroud)

并在你想要的地方使用它:

 Grid1.Background = brush;
Run Code Online (Sandbox Code Playgroud)

或者您可以使用FindResource. 然而,WinRT 似乎缺少FindResourceWPF 中熟悉的功能。你可以使用这个扩展方法。(遗憾的是我还没有测试过)

Grid1.Background = FindResource("NonActivePanelBackgBrush") as SolidColorBrush;
Run Code Online (Sandbox Code Playgroud)