我想在Xamarin.Forms应用中覆盖其中一个Device Styles,但我只想更改一个或两个属性。目前,我在代码中实现了这一点,如下:
Style listItemTextStyle = new Style(typeof (Label))
{
BasedOn = Device.Styles.ListItemTextStyle
};
Setter wpListItemFontSizeSetter = new Setter
{
Property = Label.FontSizeProperty
};
Device.OnPlatform(WinPhone: () => wpListItemFontSizeSetter.Value = 29.86);
listItemTextStyle.Setters.Add(wpListItemFontSizeSetter);
Application.Current.Resources.Add("FixedListItemTextStyle", listItemTextStyle);
但这有一个相当嘈杂的缺点,并阻止应用程序的其他部分在设计时找到样式。
那么,有没有办法可以实现这样的目标呢?
<Style x:Key="FixedListItemTextStyle" BasedOn="{DynamicResource ListItemTextStyle}">
<Setter Property="FontSize">
<Setter.Value>
<OnPlatform x:TypeArguments="x:Double" WinPhone="29.86"/>
</Setter.Value>
</Setter>
</Style>