开关控制的本地样式无法正常工作

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

我的理解是本地样式优先。但由于某种原因,应用程序级别的默认模板似乎覆盖了本地样式。例如,设置这些本地属性不起作用或被覆盖:

<Switch OnColor="Orange" ThumbColor="Green" />

添加页面级资源样式也无法正常工作:

<ContentPage.Resources>
    <Style TargetType="Switch">
        <Setter Property="OnColor" Value="Blue"  />
        <Setter Property="ThumbColor" Value="Red" />
    </Style>
</ContentPage.Resources>

<Switch />

仅当在应用程序级别注释

<Setter Property="VisualStateManager.VisualStateGroups">
时,上述样式才有效。

这可能是一个错误,还是我在这里遗漏了一些东西?

maui
1个回答
0
投票

是的,我可以确认这是

.NET 8
上的潜在问题,与 Switch 控件忽略 OnColor 和 ThumbColor #19380 有关。不过,它正在开发
.NET 7
项目。

作为替代解决方法,您可以通过评论

<Setter Property="VisualStateManager.VisualStateGroups">
来修复它,如您在帖子中所述,或者您可以使用
CustomSwitchHandler
,它使用派生自
CustomSwitch
Switch
。更多详情,您可以参考https://github.com/dotnet/maui/issues/19883#issuecomment-2053647045

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