只是实现了一个切换到显示器,它有一个黑色背景的Android.
添加了一个开关设法设置OnColor和ThumbColor为打开状态和Thumbcolor为关闭状态,但无论我修补,我不能设置Oncolor为关闭状态使用视觉状态管理器(希望这是有意义的)。
正如您在下图中所看到的,打开状态为绿色,关闭状态不显示任何融合到黑色背景中的内容。我想把它设置为灰色。
我的交换机
<Switch IsToggled="True" Style="{StaticResource ToggleSwitch}">
在MyStyles.xaml中,我添加了自定义样式。
<Style x:Key ="ToggleSwitch" TargetType="Switch">
<Setter Property="VisualStateManager.VisualStateGroups">
<VisualStateGroupList>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="On">
<VisualState.Setters>
<Setter Property="OnColor"
Value="Green" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Off">
<VisualState.Setters>
<Setter Property="OnColor"
Value="Gray" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateGroupList>
</Setter>
</Style>
我已经看到其他答案建议改变背景和背景颜色,这不是答案,因为背景必须是黑色的。无论我怎么尝试,我都不能改变关闭状态的颜色。
任何建议/指针总是赞赏。
参考:.NET MAUI: Change off color of switch <--这个答案一点也不好。
https://learn.microsoft.com/en-us/dotnet/maui/user-interface/controls/switch#switch-visual-states
https://learn.microsoft.com/en-us/dotnet/maui/user-interface/visual-states
考虑以这种速度使用定制解决方案:-https://github.com/IeuanWalker/Maui.Switch
但更愿意使用本机或尽可能接近本机。
先谢了。
1条答案
按热度按时间pgky5nke1#
无论我怎么尝试,我都无法改变关闭状态的颜色。
这是因为Switch本身只有
OnColor
属性,该属性只能在On
位置时获取或设置开关的颜色。因此,如果有一个BindablePropertyOffColor
可以为Switch设置,那将是完美的。但是,您可以提出功能请求:https://github.com/dotnet/maui/issues/new/choose用于添加BindableProperty
OffColor
以设置Switch。作为替代解决方法,您可以使用您提到的自定义解决方案:https://github.com/IeuanWalker/Maui.Switch。我检查了示例代码,您可以通过
CustomSwitch_SwitchPanUpdate
方法更改Off状态颜色:黑色背景输出: