Uno Platform PathIcon升级Uno.UI至3.10.0-dev.479+后显示异常
问题根因
该问题是3.10.0-dev.474到3.10.0-dev.479版本迭代中,Uno.UI调整了BottomNavigationBar子元素的默认主题色优先级导致的,PathIcon会继承上层半透明的未选中态Foreground属性,因此出现颜色过浅的显示异常,和业务代码改动无关。
异常效果示例:
修复方案
- 方案1:手动指定PathIcon的Foreground属性,避免继承异常的默认样式,示例代码:
<PathIcon Data="你的路径数据" Foreground="{ThemeResource SystemControlForegroundBaseHighBrush}" />
也可以直接指定固定色值,比如Foreground="#FF000000"即可恢复正常黑色显示。 - 方案2:如果需要保留选中/未选中态的自动颜色切换效果,可以重写BottomNavigationBar的ItemContainerStyle,将PathIcon的Foreground绑定到父级的ContentForeground属性,参考样式:
<Style x:Key="FixBottomNavItemStyle" TargetType="NavigationViewItem"> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <PathIcon Data="{Binding}" Foreground="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ContentForeground}" /> </DataTemplate> </Setter.Value> </Setter> </Style>
给每个BottomNavigationBarItem应用上述自定义样式即可。
- 方案3:dev通道属于测试版本,存在样式调整的不稳定性,若暂时不需要479版本的新增特性,保持回退到3.10.0-dev.474版本是可行的临时规避方案,待后续正式版修复该样式问题后再升级即可。
内容的提问来源于stack exchange,提问作者Jt5
相关产品推荐
相关产品推荐

