2014-07-18 49 views
0

我有一個Windows Phone 8.1應用程序,其中有兩頁。首先是MainPage.xaml,我使用longlistselector控件顯示列表。在Settings.xaml頁面上,我爲使用Listpicker控件的用戶選擇了字體大小。從Windows Phone的設置頁面傳播設置

問題是,一旦用戶在設置頁面上選擇了新的字體大小,我想要在MainPage上的longlistselector中更改字體。但是,在MainPage.xaml上縮放的longlistselector在「設置」頁面上不可用。 (我將longlistselector的itemssource設置在MainPage.cs文件中。)

我應該如何解決此問題?我應該使用MainPage.xaml的頁面事件並檢測用戶是否更改了字體大小?解決這個問題的標準方法是什麼?

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在MainPage.xaml中:

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

你能告訴我們,如果提供的解決方案已經爲你工作?如果是的話,請把它標爲正確的答案。:) –

回答

1

當您離開您可以使用OnNavigatedFrom()方法來保存Settings.xaml頁離開你設置爲IsolatedStorageSettings。然後,在OnNavigatedTo()方法後面的代碼中的MainPage.xaml中,您可以從IsolatedStorageSettings中加載該設置值,並在LongListSelector中設置字體。這是做到這一點的方法。在設置頁面,添加以下代碼

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

然後在MainPage.xaml.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 
    } 
} 
+0

是的,我認爲這應該工作得很好。但我只是認爲這樣做效率會比較低,因爲即使設置沒有改變,這個事件也會啓動,我會更新字體,無論如何... – user3656651

+0

您在我的視圖中有另一個選項。你可以在App.xaml.cs文件中有一個簡單的變量或一個對象。所以它有一個應用範圍。當你進入設置頁面並在適當的控制器中設置valueChanged事件中的值時,將該值設置爲App.xaml.cs中變量/對象中的所需值,然後可以在應用程序中的任意位置訪問該值。當你終止應用程序。將該值保存到IsolatedStorageSetting。這也適用於你。 –