从应用程序资源中读取颜色

时间:2019-05-09 06:56:26

标签: uwp c++-cli windows-10-universal

我需要从下面的xaml中获取SolidColorBrush。

<Page
    x:Class="VGOUserInterface.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
    MaxWidth="800" MaxHeight="480">
..
..
</Page>

如何从c ++ / cxx中的上述xaml获取SolidColorBrush?

我尝试如下,但是它说'Resources':不是'Windows :: UI :: Xaml :: Application :: Current'的成员。

SolidColorBrush^ resourceStringMap = (SolidColorBrush^)Application::Current::Resources->Lookup("ApplicationPageBackgroundThemeBrush");

1 个答案:

答案 0 :(得分:0)

如果您在页面资源中声明了SolidColorBrush,则需要在后面的页面代码中获取SolidColorBrush,并附带以下代码,并且Application::Current::Resources用于在App.xaml中获取资源。文件。

MainPage::MainPage()
{
    InitializeComponent();
    SolidColorBrush^ resourceStringMap = (SolidColorBrush^)this->Resources->Lookup("MyColor");
}

Xaml

<Page.Resources>
    <ResourceDictionary>
        <SolidColorBrush Color="Red" x:Key="MyColor"/>
    </ResourceDictionary>
</Page.Resources>