当我使用XAML时,它会继承颜色等属性吗?

时间:2018-07-17 06:10:11

标签: xamarin xamarin.forms

如果我有此代码:

<Grid Margin="10">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <local:HOV Grid.Row="0" />
    <local:HST Grid.Row="1" />
    <local:HAC Grid.Row="2" />
    <local:HAI Grid.Row="3" />
</Grid>

我想在网格内的所有内容中设置文本的颜色,我可以直接指定:

TextColor="Gray"

然后在其中的所有内容都会显示为灰色?

2 个答案:

答案 0 :(得分:2)

网格不支持TextColor属性。您可以使用隐式样式并为内容页面上的所有标签上色,如下所示:

<ContentPage.Resources>
    <Style TargetType="Label">
        <Setter Property="TextColor" Value="Gray"></Setter>
    </Style>
</ContentPage.Resources>

您可以创建这样的命名样式:

<ContentPage.Resources>
    <Style x:Key="lblStyle" TargetType="Label">
        <Setter Property="TextColor" Value="Red"></Setter>
    </Style>
</ContentPage.Resources>

并将其应用于这样的标签:

<Label Style="{StaticResource lblStyle}" Text="Test" Grid.Row="0" />

答案 1 :(得分:1)

否,这是不可能的。您将必须创建一个隐式样式,或在继承的控件上将颜色默认设置为灰色。