【问题标题】:List<Color> in XamlXaml 中的列表<颜色>
【发布时间】:2019-01-18 04:07:45
【问题描述】:

我在 Xaml 中像这样定义了我的列表。

  <ContentPage.Resources>
    <ResourceDictionary>
      <local:FileName x:Key="fileName">
        <Color>#3599B8</Color>
        <Color>#374649</Color>
        <Color>#FD625E</Color>
        <Color>#F2C80F</Color>
      </local:FileName> 
    </ResourceDictionary>
  </ContentPage.Resources>

FileName 是这样在后面的代码中定义的。

public class FileName : List<Color>
    {

    }

我不想直接设置颜色值,而是想将它定义为这样的资源

<Color x:Key="BasicColorSchemeBlue">#3599B8</Color>

并使用它。

关于如何做到这一点的任何建议。

提前致谢。

【问题讨论】:

  • 不管这个问题,我很想知道为什么名为FileName 的类会继承自颜色列表...
  • @JoshPart 这只是为了测试目的。我有 List 类型的属性,我从 ResourceDictionary 设置它的值。
  • 这个问题也不是很清楚。无论哪种方式,StaticResourceDynamicResource 都只会在ResourceDictionary 的顶层搜索键。所以你不能在fileName资源的孩子上设置键。
  • 我不明白这个问题

标签: xaml xamarin xamarin.forms


【解决方案1】:

GradientColors 是一个颜色数组。

 <?xml version="1.0" encoding="utf-8"?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
                 xmlns:local="clr-namespace:GradientTest"
                 xmlns:s="clr-namespace:System;assembly=mscorlib"
                 x:Class="GradientTest.GradientTestPage">
        <StackLayout Padding="20, 40, 20, 20">
            <local:GradientViewRender HorizontalOptions="Center" 
                                      WidthRequest="300" 
                                      HeightRequest="50" 
                                      x:Name="gradientView">

                <local:GradientViewRender.GradientColors>
                    <x:Array Type="{x:Type Color}"> 
                        <Color>#5FC900</Color>
                        <Color>#0FF2C8</Color> 
                    </x:Array>
                </local:GradientViewRender.GradientColors>
            </local:GradientViewRender>
        </StackLayout>
    </ContentPage>

【讨论】:

    【解决方案2】:

    我在一个工作的应用程序上做过这样的事情。 这进入 App.xaml:

    <Color x:Key="COLOR_NAME">#ffffff</Color>
    

    要从 .cs 文件中访问颜色,请使用:

    (Color)ResourceFinder.FindResource("COLOR_NAME");
    

    或者在 xaml 文件中使用 StaticResource 或 DynamicResource。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2014-04-01
      • 1970-01-01
      • 2018-01-01
      • 2023-04-07
      相关资源
      最近更新 更多