如何更改.Net MAUI中ContentPresenter的文本颜色

问题描述 投票:0回答:1

我在我的应用程序中使用了自定义样式的单选按钮,它使用 ContentPresenter 来显示文本/内容。我想更改文本的颜色。

我尝试过 TextColorTextBlock.Foreground 但这些并不能解决问题。

这是我的代码示例:

<ControlTemplate x:Key="RadioButtonTemplate">
                <Border Stroke="Transparent" BackgroundColor="Transparent">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroupList>
                            <VisualStateGroup x:Name="CheckedStates">
                                <VisualState x:Name="Checked">
                                    <VisualState.Setters>
                                        <Setter TargetName="check" Property="Opacity" Value="1" />
                                        <Setter TargetName="check_circle" Property="Opacity" Value="1" />
                                        <Setter TargetName="border_circle" Property="Opacity" Value="0" />
                                    </VisualState.Setters>
                                </VisualState>
                                <VisualState x:Name="Unchecked">
                                    <VisualState.Setters>
                                        <Setter TargetName="check" Property="Opacity" Value="0" />
                                        <Setter TargetName="check_circle" Property="Opacity" Value="0" />
                                        <Setter TargetName="border_circle" Property="Opacity" Value="1" />
                                    </VisualState.Setters>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateGroupList>
                    </VisualStateManager.VisualStateGroups>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="20" />
                            <ColumnDefinition Width="Auto" />
                        </Grid.ColumnDefinitions>
                        <Grid WidthRequest="20" HeightRequest="20" Grid.Column="0" VerticalOptions="Center" HorizontalOptions="Center">
                            <Ellipse x:Name="border_circle" StrokeThickness="2" Stroke="{StaticResource PlaceholderColor}" Fill="Transparent" WidthRequest="18" HeightRequest="18" HorizontalOptions="Center" VerticalOptions="Center" />
                            <Ellipse x:Name="check" Fill="{StaticResource BackgroundColor}" WidthRequest="10" HeightRequest="10" HorizontalOptions="Center" VerticalOptions="Center" />
                            <Ellipse x:Name="check_circle" StrokeThickness="2" Stroke="{StaticResource BackgroundColor}" WidthRequest="18" HeightRequest="18" HorizontalOptions="Center" VerticalOptions="Center" />
                        </Grid>
                        <ContentPresenter Margin="10,0,0,0" Grid.Column="1" HorizontalOptions="Start" VerticalOptions="Center" />
                    </Grid>
                </Border>
            </ControlTemplate>

            <Style TargetType="RadioButton" x:Key="RadioButtonStyle">
                <Setter Property="ControlTemplate" Value="{StaticResource RadioButtonTemplate}" />
                <Setter Property="TextColor" Value="{StaticResource Black}" />
            </Style> 
c# xaml radio-button maui contentpresenter
1个回答
0
投票

您只需在 RadioButton.Content

中设置 TextColor
<RadioButton Value="Elephant">
    <RadioButton.Content>
        <StackLayout>
            <Image Source="dotnet_bot.png"
                   HorizontalOptions="Center"
                   VerticalOptions="Center" />
            <Label Text="Elephant" TextColor="Yellow"
                   HorizontalOptions="Center"
                   VerticalOptions="End" />
        </StackLayout>
    </RadioButton.Content>
</RadioButton>

更多信息,您可以参考重新定义RadioButton外观

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.