【发布时间】:2021-06-07 12:08:01
【问题描述】:
我正在使用适用于 Android 的 Xamarin Forms。我的问题是 Path UI 元素。此 UI 元素有一个 ScaleTransform,其中图像在 X 和 Y 方向上缩放 1.5 倍。此外,它还有一个DataTrigger,它根据bool IsConnected 的状态更改Fill 和Data 属性。如果IsConnected 切换状态,则执行适当的触发器,但即使状态变回,图像也会失去其比例并保持较小。
这是我的 Xaml 代码:
<Path Margin="5" HorizontalOptions="Fill" VerticalOptions="Fill" Data="Some Geometry">
<Path.RenderTransform>
<ScaleTransform ScaleX="1.5" ScaleY="1.5"/>
</Path.RenderTransform>
<Path.Triggers>
<DataTrigger TargetType="Path" Binding="{Binding IsConnected}" Value="True">
<Setter Property="Fill" Value="Green"/>
</DataTrigger>
<DataTrigger TargetType="Path" Binding="{Binding IsConnected}" Value="False">
<Setter Property="Fill" Value="Red"/>
<Setter Property="Data" Value="Some Other Geometry"/>
</DataTrigger>
</Path.Triggers>
</Path>
这种行为让我感到惊讶。有人可以为此提出解决方案吗? 我在互联网上搜索了答案,但找不到类似的答案。
编辑:似乎问题在于Data 属性已更改。如果仅更改 Fill 属性,则比例保持不变。
根据要求提供我的路径数据:
(一些几何)
Data="M12,21L15.6,16.2C14.6,15.45 13.35,15 12,15C10.65,15 9.4,15.45 8.4,16.2L12,21M12,3C7.95,3 4.21,4.34 1.2,6.6L3,9C5.5,7.12 8.62,6 12,6C15.38,6 18.5,7.12 21,9L22.8,6.6C19.79,4.34 16.05,3 12,3M12,9C9.3,9 6.81,9.89 4.8,11.4L6.6,13.8C8.1,12.67 9.97,12 12,12C14.03,12 15.9,12.67 17.4,13.8L19.2,11.4C17.19,9.89 14.7,9 12,9Z"
(其他一些几何形状)
Value="M2.28,3L1,4.27L2.47,5.74C2.04,6 1.61,6.29 1.2,6.6L3,9C3.53,8.6 4.08,8.25 4.66,7.93L6.89,10.16C6.15,10.5 5.44,10.91 4.8,11.4L6.6,13.8C7.38,13.22 8.26,12.77 9.2,12.47L11.75,15C10.5,15.07 9.34,15.5 8.4,16.2L12,21L14.46,17.73L17.74,21L19,19.72M12,3C9.85,3 7.8,3.38 5.9,4.07L8.29,6.47C9.5,6.16 10.72,6 12,6C15.38,6 18.5,7.11 21,9L22.8,6.6C19.79,4.34 16.06,3 12,3M12,9C11.62,9 11.25,9 10.88,9.05L14.07,12.25C15.29,12.53 16.43,13.07 17.4,13.8L19.2,11.4C17.2,9.89 14.7,9 12,9Z"
【问题讨论】:
-
为什么要在 IsConnected 变为 false 时更改 Path.Data ?数据和原来的一样吗?能否将数据提供给我们进行测试?
-
@ColeX-MSFT 数据应该是完全无关的。无论哪种方式,我都会添加我的两个数据。
标签: android xaml xamarin.forms