xaml - Xamarin Forms 将 Xaml 转换为通用资源样式 Yummy PancakeView
问题描述
我正在尝试将煎饼控件的属性转换为样式,因此我所有的煎饼控件的样式都相同。这就是我的 XAML 的样子。
<yummy:PancakeView x:Name="pvMEssage" BackgroundColor="{DynamicResource ExceptionBackground}" CornerRadius="0,0,20,20" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
Padding="0,0,0,0" Margin="0,0,0,0">
<yummy:PancakeView.BackgroundGradientStops StartPoint="0,0" EndPoint="0,0">
<yummy:GradientStop Offset="0.1" Color="{DynamicResource ExceptionBackground}" />
</yummy:PancakeView.BackgroundGradientStops>
<yummy:PancakeView.Border>
<yummy:Border Color="White" Thickness="2" />
</yummy:PancakeView.Border>
我知道如何在样式中使用 setter.value,但我不知道如何将 backgroundgradientstops 放入样式中。
到目前为止我有这个:
<Style x:Key="PancakeViewTop" TargetType="yummy:PancakeView">
<Setter Property="CornerRadius" Value="20,20,0,0" />
<Setter Property="HorizontalOptions" Value="FillAndExpand" />
<Setter Property="VerticalOptions" Value="FillAndExpand" />
<Setter Property="Padding" Value="0,0,0,0" />
<Setter Property="Margin" Value="0,0,0,0" />
<Setter Property="BackgroundGradientStartPoint" Value="0,0" />
<Setter Property="BackgroundGradientEndPoint" Value="0,0" />
<Setter Property="BackgroundGradientStops">
<Setter.Value>
<yummy:GradientStop Offset="0.1" Color="{DynamicResource ExceptionBackground}" />
</Setter.Value>
</Setter>
<Setter Property="Border">
<Setter.Value>
<yummy:Border Color="White" Thickness="2" />
</Setter.Value>
</Setter>
</Style>
但我在这些线上遇到错误
<Setter Property="BackgroundGradientStops">
<Setter.Value>
指出“无法分配指定的值。预期以下类型:“GradientStopCollection”
解决方案
尝试:
<Setter Property="BackgroundGradientStops">
<Setter.Value>
<pancake:GradientStopCollection>
<pancake:GradientStop Offset="0.1" Color="{DynamicResource ExceptionBackground}"/>
<pancake:GradientStop Offset="0.5" Color="{DynamicResource OtherColor}"/>
</pancake:GradientStopCollection>
</Setter.Value>
</Setter>
您还需要指定至少 2 种颜色 (2 GradientStop
) 否则会引发异常
Java.Lang.IllegalArgumentException: '需要 >= 2 种颜色'
并且只有一种颜色的渐变没有意义。
推荐阅读
- sql - 在 SQL 中重复列的前一个值
- java - IntelliJ IDEA 2018.3.5 - 尽管设置了编码类型,但控制台上出现 UTF-8 编码错误
- java - 如何使用预编译脚本确定 Nashorn 性能缓慢或瓶颈的根本原因
- r - 当从其他 UI 动态生成最小和最大日期时,闪亮的动态滑块输入显示警告
- bash - 合并视频FFMPEG时出现错误“没有这样的过滤器”
- unity3d - Unity ARCORE 项目的 Web 构建
- firebase - 从 firebase 获取数据后无法呈现 react-native 组件
- apache-storm - 阿帕奇风暴与阿帕奇气流
- python - WTForms Flask(wtf_flask) 验证器如何包含 RadioField 的“必需”属性
- c# - 有什么方法可以从 SQL Server 数据库调用日期时间,多个日期时间之间有一些时间间隔差异