重置在XAML Xamarin.Forms的默认样式值的属性
我有一个标签,它看起来像这样:重置在XAML Xamarin.Forms的默认样式值的属性
<Label Style="{StaticResource myStyle}" x:Name="TestLabel">
绑定的样式设置标签,红色的背景色。
再后来就在代码中,我这样做:
TestLabel.SetValue(Label.BackgroundColorProperty, Color.Green);
此设置标签的背景颜色为绿色。
但后来,我需要清除的绿色,我手动设置,我需要将其重置为默认值,通过绑定的风格决定(在这种情况下,红色)。
所以我这样做:
TestLabel.ClearValue(Label.BackgroundColorProperty);
但不是恢复到红色,背景色被完全除去,变得透明(这是一个标签的默认设置,不附带任何样式)。
(一种解决方案,提供本身就TestLabel.SetValue(Label.BackgroundColorProperty,Color.Red);,但我不能这样做,因为我需要的颜色恢复到任何连接到它的风格说,是,由于不同的标签具有连接不同的样式)
设置或重置属性使用触发器,而不是手动设置的最佳方式。
https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/triggers/
我实在不明白我怎么能使用触发器在这里,因为我需要的颜色在后面的代码具体条件改变,它不只是一些简单的onmouseover事件或类似的东西 – Askerman
没有得到你。你使用哪种情况?为什么你使用这个TestLabel.ClearValue?如果你想改变红色回来,然后重新设定使用此TestLabel.SetValue(Label.BackgroundColorProperty,Color.Red); –
触发基于条件和当值改变,它会自动设置默认的颜色。 –
您使用mvvm模式吗? –
为什么就不能跟踪以前的颜色,并设置它,当你试图将其复位。 'var color = TestLabel.BackgroundColor; ... TestLabel.BackgroundColor =颜色;' – Ada