Windows phone 8.1 应用程序重新启动后,切换开关不保持状态
我使用的切换开关工作正常,直到我重新启动应用程序。重新启动应用程序后,切换开关不会保持以前的更改并恢复为默认状态。我怎样才能解决这个问题 更新:这就是我试图将切换开关值保存到本地设置的方式Windows phone 8.1 应用程序重新启动后,切换开关不保持状态,windows-phone-8.1,Windows Phone 8.1,我使用的切换开关工作正常,直到我重新启动应用程序。重新启动应用程序后,切换开关不会保持以前的更改并恢复为默认状态。我怎样才能解决这个问题 更新:这就是我试图将切换开关值保存到本地设置的方式 private void ThemeToggle_switch(object sender, RoutedEventArgs e) { if (ThemeToggle.IsOn) { (Frame).RequestedTheme = Elem
private void ThemeToggle_switch(object sender, RoutedEventArgs e)
{
if (ThemeToggle.IsOn)
{
(Frame).RequestedTheme = ElementTheme.Light;
Windows.Storage.ApplicationData.Current.LocalSettings.Values["ThemeToggle"] = "Light";
Windows.Storage.ApplicationData.Current.LocalSettings.Values["ThemeToggleValue"] = "on";
}
else (Frame).RequestedTheme = ElementTheme.Dark;
Windows.Storage.ApplicationData.Current.LocalSettings.Values["ThemeToggle"] = "Dark";
Windows.Storage.ApplicationData.Current.LocalSettings.Values["ThemeToggleValue"] = "off";
}
在App.xamls.cs中,我将本地设置值设置如下:
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["ThemeToggle"] = "Dark";
localSettings.Values["ThemeToggleValue"] = "off";
逻辑工作正常,切换开关工作正常,主题正在改变。但是,只要我关闭并重新启动应用程序,我的应用程序就会保持选定的主题,但切换按钮不会保持其状态。这就是我的Xaml代码的样子:
<ToggleSwitch x:Uid="ThemeToggle" x:Name="ThemeToggle" OnContent="Dark Theme" OffContent="Light Theme" Toggled="ThemeToggle_switch" HorizontalContentAlignment="Stretch" Margin="10,20,6,10" Height="65"/>
我怀疑这可能与在本地设置中添加/替换/读取值有关,但我不知道如何修复它。感谢您的帮助。一旦启动应用程序并创建UI,您就可以决定控件的状态。如果您没有将交换机的前一状态保存在某个位置(例如在LocalSettings中),那么它将始终具有默认值。最简单的方法可能是为此使用设置,或者使用双向绑定来获取/设置适当属性的值。@Romasz:看起来开关所做的更改在应用程序重新启动后仍然存在,但在开关状态下不存在。那么我不理解你的问题-请更好地指定它,输入一些你尝试过的代码。另外,请确保您讨论的是应用程序重启/暂停/其他。以下是我到目前为止尝试过的:private void ThemeToggle_开关(对象发送方,RoutedEventArgs e){if(ThemeToggle.IsOn){(Frame.RequestedTheme=ElementTheme.Light;}else(Frame).RequestedTheme=ElementTheme.Dark;}当我切换开关时,应用程序主题会发生完美的变化。重新启动时,应用程序会保持修改后的主题,但切换开关不会。它将恢复为其默认值,即关闭。我希望切换开关保持其状态以反映所选主题。将IsOn preperty绑定到将从LocalSettings加载/保存的属性,使用双向绑定,还可能需要使用合适的转换器。