通过Switch控件Toggled事件切换明暗主题异常问题咨询
解决Switch控件切换深浅主题的问题
尝试使用Switch控件在浅色主题(Light)与深色主题(Dark)之间进行切换。目前触发Toggled事件时可切换至深色主题,但关闭开关时无法切回浅色主题,是否需要使用条件判断来实现该功能?
现有代码
XAML代码
<Switch x:Name="Darkswitch" Toggled="Darkswitch_Toggled" IsToggled="False" OnColor="White" ThumbColor="Gray" VerticalOptions="Center" HorizontalOptions="Center" />
C#代码
private void Darkswitch_Toggled(object sender, ToggledEventArgs e) { Application.Current.UserAppTheme = AppTheme.Dark; }
解决方案
是的,必须通过条件判断实现双向切换。你当前的代码忽略了Switch的状态变化,不管开关开启还是关闭都强制设置为深色主题,因此无法切回浅色。
修改C#代码,通过ToggledEventArgs.Value获取Switch的当前状态,根据状态匹配对应的主题:
private void Darkswitch_Toggled(object sender, ToggledEventArgs e) { Application.Current.UserAppTheme = e.Value ? AppTheme.Dark : AppTheme.Light; }
额外注意:如果应用默认主题是浅色,Switch的IsToggled初始值设为False是正确的;若默认主题为深色,需将IsToggled改为True,确保开关状态与当前主题保持一致。
内容的提问来源于stack exchange,提问作者Bas H
相关产品推荐
相关产品推荐

