在我插入到应用程序另一页中的Xaml代码中,我有以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<Grid xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:template="clr-namespace:Japanese.Templates"
x:Class="Japanese.Views.Phrases.Xaml.PhraseQuizInfo"
VerticalOptions="FillAndExpand" Padding="20,0,20,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="33*" />
<ColumnDefinition Width="33*" />
<ColumnDefinition Width="33*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0" Text="{Binding Deck}" Style="{StaticResource StatusLabel}" />
<Label Grid.Column="1" Text="{Binding Cards}" Style="{StaticResource StatusLabel}" />
<Label Grid.Column="2" Text="{Binding Timer}" Style="{StaticResource StatusLabel}" />
</Grid>
是否可以使用称为StatusLabel的StaticResource指定网格内的所有标签,而不必将其添加到每个标签中?
答案 0 :(得分:2)
有显式或隐式全局样式。
当前您正在使用显式样式,因为您正在为其定义一个键并通过其Style参数在每个Label上分配它们。
<Style x:Key="StatusLabel" TargetType="Label">
~~~
</Style>
您可以定义一个隐式样式,因此所有标签都将接收该样式,只是不为其定义键,并且不手动分配Style参数
<Style TargetType="Label">
~~~
</Style>
然后您可以通过显式的样式覆盖各个隐式标签的样式。
因此,如果您的大多数Label是“ StatusLabel”样式,则将其定义为隐式样式,并在需要时将其覆盖。
回复:Creating a Global Style in XAML
注意:您还可以在页面级别和控件级别定义样式,因此通过样式继承可以在需要时调整各个样式属性。