如何为UWP Pivot控件的不同PivotItem设置不同背景色
给UWP Pivot控件的不同PivotItem设置独立背景色
嗨,我来帮你搞定这个需求!给不同的PivotItem设置专属背景色其实很简单,我结合你的代码片段给你两种常用的实现方式:
方法一:直接在XAML中设置(最直观)
你可以直接给每个PivotItem添加Background属性,指定你想要的颜色。注意要把内部的ListView背景设为透明,不然会遮盖掉PivotItem的背景色。修改后的代码如下:
<Pivot x:Name="Pivot" HorizontalContentAlignment="Center"> <!-- 给"All"设置蓝色背景 --> <PivotItem Header="All" x:Name="All" Background="#FF0078D7"> <ListView ItemsSource="{Binding Source={StaticResource AllList}}" SelectionMode="None" Background="Transparent"> </ListView> </PivotItem> <!-- 给"Not All"设置红色背景 --> <PivotItem x:Name="NotAll" Header="Not All" Background="#FFE81123"> <ListView ItemsSource="{Binding Source={StaticResource NotAllList}}" SelectionMode="None" Background="Transparent"> </ListView> </PivotItem> </Pivot>
这里用的是微软官方的主题色十六进制值,你也可以换成Colors.Blue、Colors.Red这样的枚举值,或者自定义RGB颜色。
方法二:通过后台代码动态设置(适合动态场景)
如果你的背景色需要根据业务逻辑动态变化,比如用户切换主题时改变,那可以在后台代码里设置:
首先给页面添加加载事件:
<Page ... Loaded="Page_Loaded">
然后在代码后台实现:
private void Page_Loaded(object sender, RoutedEventArgs e) { // 给All设置蓝色背景 All.Background = new SolidColorBrush(Colors.Blue); // 给NotAll设置红色背景 NotAll.Background = new SolidColorBrush(Colors.Red); }
同样要记得把ListView的背景设为透明,否则看不到PivotItem的背景哦。
小提示
如果想要连Pivot的头部标签(Header区域)也设置不同背景,那需要修改Pivot的默认样式,重新定义PivotHeaderItem的模板,不过看你的需求应该是针对内容区域的背景,上面的方法就足够啦!
内容的提问来源于stack exchange,提问作者El0din
相关产品推荐
相关产品推荐

