【问题标题】:How to assign a color code as a resource in Windows Phone 8.1 RT?如何在 Windows Phone 8.1 RT 中将颜色代码分配为资源?
【发布时间】:2016-03-09 07:59:06
【问题描述】:

我想创建一个资源文件,在这个文件中,我想分配一些颜色的值(在 HEX 字符串中)并在代码中使用它们。当我们已经有一个 resource.resx 文件并在其上添加价值时,在 WP 8.0 silverlight 上显然很容易。但在 Windows Phone 8.1 RT 中,我不知道该怎么做。请帮帮我!

P/s:为了清楚起见,以Android为例,我们可以在其中创建一个color.xml文件,然后在xml代码中使用它,例如PrimaryColor或SecondaryColor,这是我的目的,仅在Windows Phone 8.1上反转录。谢谢!

【问题讨论】:

    标签: c# xaml windows-runtime windows-phone-8.1


    【解决方案1】:

    添加新的ResourceDictionary 并在其中定义颜色:

    <SolidColorBrush x:Key="MyColor">#3D3D3D"</SolidColorBrush>
    

    然后你需要将其添加到App.xaml 以使其可以全局访问:

     <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Common/Resources.xaml"></ResourceDictionary>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
    

    您可以像这样在 XAML 中访问它:

    <Border x:Name="myBorder" Background="{StaticResource MyColor}">
    </Border>
    

    在 C# 中,您可以像这样访问:

    myBorder.Background = App.Current.Resources["MyColor"] as SolidColorBrush;
    

    【讨论】:

      【解决方案2】:

      创建一个 XAML 文件 ColorResource.xaml 并根据您想要分配的位置和方式来使用

      • 画笔
      • 颜色

      ColorResource.xaml

      <ResourceDictionary
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      
          <SolidColorBrush x:Key="PrimaryColorBrush" Color="Transparent" />
          <Color x:Key="SecondaryColor">#FF00FF00</Color>
      
      </ResourceDictionary>
      

      在你想使用它的地方包括字典:

      <Page.Resources>
              <ResourceDictionary>
                  <ResourceDictionary.MergedDictionaries>
                      <ResourceDictionary Source="/ResourceDictionaries/ColorResource.xaml"/>
      

      你通常只会使用画笔

      <Border Background="{StaticResource PrimaryColorBrush}" BorderThickness="1">
      

      只有在极少数情况下,您才会使用实际颜色

      <ColorAnimation Duration="0" Storyboard.TargetName="myStory" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)" To="{StaticResource SecondaryColor}"/>
      

      希望对你有帮助

      【讨论】:

      • 谢谢,但你上面的那个人回答得很快,抱歉没有为你投票:'(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多