从资源字典中读取画笔

时间:2018-09-16 19:38:18

标签: c# uwp uwp-xaml

我在项目的App.XAML页面中定义了以下资源字典:

<Application.Resources>
    <ResourceDictionary>
        <AcrylicBrush x:Key="CustomAcrylicDarkBackground"
                  BackgroundSource="HostBackdrop"
                  TintColor="#a5a4a4"
                  TintOpacity="0.7"
                  FallbackColor="Black"/>
        <AcrylicBrush x:Key="CustomAcrylicDarkInApp"
                  BackgroundSource="Backdrop"
                  TintColor="Gray"
                  TintOpacity="0.5"
                  FallbackColor="Gray"/>
        <AcrylicBrush x:Key="CustomAcrylicDarkButton"
                      BackgroundSource="Backdrop"
                      TintColor="DarkGray"
                      TintOpacity="0.8"
                      FallbackColor="DarkGray"/>

        <SolidColorBrush x:Key="DefaultTextColour"
                         Color="#b880fc"
                         Opacity="100"/>

        <ResourceDictionary.MergedDictionaries>
            <XamlControlsResources  xmlns="using:Microsoft.UI.Xaml.Controls"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

在将“ DefaultTextColour”读取到我主页后面的代码中时遇到问题。

我一直在尝试通过执行以下操作来读取画笔:

TransfersItem.Foreground = Application.Current.Resources["DefaultTextColour"];

TransfersItem.Foreground = (Brush)FindName("DefaultTextColour");

TransfersItem.Foreground = (Brush)Application.Current.Resources("DefaultTextColour");

到目前为止,没有一个工作。我不确定我该如何参考。

是因为我试图将其读入属性吗?

编辑:它确实说该资源不能像一种方法一样使用,但是我不确定如何解决

1 个答案:

答案 0 :(得分:2)

TransfersItem.Foreground = Application.Current.Resources["DefaultTextColour"] as SolidColorBrush;

您需要告诉应用程序您期望什么类型的回报。