XAML Shell:如何更改所选文本选项卡颜色

klh5stk1  于 2023-06-27  发布在  Shell
关注(0)|答案(1)|浏览(107)

我需要改变 shell 选定的标签文本颜色。我在Styles.xaml中有这样的代码:

<Style TargetType="Shell" ApplyToDerivedTypes="True">
    <Setter Property="Shell.BackgroundColor" Value="{StaticResource Tertiary900}" />
    <Setter Property="Shell.ForegroundColor" Value="{StaticResource White}" />
    <Setter Property="Shell.TabBarForegroundColor" Value="{StaticResource Primary}" />
    <Setter Property="Shell.TabBarTitleColor" Value="{StaticResource Primary}" />
    <Setter Property="Shell.TabBarUnselectedColor" Value="{StaticResource Gray200}" />
</Style>

这在Android平台上运行良好:

但是在WinUI中我得到了这个:

在WinUI中似乎忽略了TabBarTitleColor和TabBarUnselectedColor属性。

fumotvh3

fumotvh31#

.NET 7上:目前在Windows上,TabBarForegroundColor是唯一可以做任何事情的API。
.NET 8上:如果用户为Windows设置了其他API,则这些API现在将开始正确应用于Windows
标签是从WinUI template生成的,所以如果你需要在NET 8之前解决this问题,你可以用你自己的模板替换这里的模板。将以下代码添加到Platform/Windows/App.xaml文件中。

<maui:MauiWinUIApplication.Resources>
    <DataTemplate x:Key="TabBarNavigationViewMenuItem">
        <NavigationViewItem 
            x:Name="navViewItem"
            Content="Monkey" 
            Foreground="Pink" 
            Background="Green" 
            IsSelected="{Binding IsSelected, Mode=TwoWay}"
            MenuItemsSource="{Binding MenuItemsSource}"
            Icon="{Binding Icon}"
            />
    </DataTemplate>
</maui:MauiWinUIApplication.Resources>

有关更多信息,请参阅https://github.com/dotnet/maui/blob/main/src/Controls/src/Core/Platform/Windows/TabbedPage/TabbedPageStyle.xaml

相关问题