从Windows Phone上的“设置”页面传播设置

本文关键字:设置 传播 Windows Phone 上的 | 更新日期: 2023-09-27 18:13:30

我有一个Windows Phone 8.1应用程序,我有两个页面。首先是主页。xaml,其中我使用longlistselector控件来显示列表。在设置中。在xaml页面上,我使用Listpicker控件为用户选择了字体大小。

问题是,一旦用户在设置页面上选择了新的字体大小,我想在MainPage上的longlistselector中更改字体。但是,在主页上声明的长列表选择器。xaml在"设置"页面中不可用。(我正在MainPage.cs文件中设置longlistselector的itemssource)

我该如何解决这个问题?我应该使用MainPage的页面事件吗?Xaml并检测用户是否更改了字体大小?解决这个问题的标准方法是什么?

Settings.xaml:

<TextBlock Text="Select Font" Margin="0,0,0,0"/>
            <toolkit:ListPicker Name="fontlistpicker" Tap="fonttapped" Margin="0,35,0,0" Grid.Row="0" SelectionChanged="fontlistpicker_SelectionChanged">
                <toolkit:ListPickerItem x:Name="Font1" Content="10"/>
                <toolkit:ListPickerItem x:Name="Font2" Content="20"/>
                <toolkit:ListPickerItem x:Name="Font3" Content="30"/>
                <toolkit:ListPickerItem x:Name="Font4" Content="40"/>
                <toolkit:ListPickerItem x:Name="Font5" Content="50"/>
            </toolkit:ListPicker>

XAML in MainPage.xaml:

<phone:LongListSelector Name="myList" >
<phone:LongListSelector.ListHeader>
     <TextBlock  Name ="dailyHeader" Margin="0,0,0,10" HorizontalAlignment="Center"/>
</phone:LongListSelector.ListHeader>
</phone:LongListSelector>

从Windows Phone上的“设置”页面传播设置

当你离开设置时。你可以使用OnNavigatedFrom()方法将你的设置保存到isolatedstoragessettings。然后在主页中。在OnNavigatedTo()方法后面的代码xaml中,你可以从isolatedstoragessettings中加载设置值,并在LongListSelector中设置字体。这就是做这件事的方法。在设置页面中,添加以下代码

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    base.OnNavigatedFrom(e);
    string key = "Font-Size";
    IsolatedStorageSettings.ApplicationSettings[key] = (fontlistpicker.SelectedItem as ListPickerItem).Content.ToString();
}

然后在mainpage . example .cs文件中添加以下

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    if (IsolatedStorageSettings.ApplicationSettings.Contains("Font-Size"))
    {
        string fontSize = IsolatedStorageSettings.ApplicationSettings["Font-Size"] as string;     
        // Code to set the Font size of your LongListSelector
    }
}