Mivel a Windows 8 alkalmazásoknak a beállításai az egységesített Settings Panelen találhatóak, ezért nem közvetlenül az alkalmazásból, hanem egy “külső” felugró UserControlból lehet elérni a beállításokat.
Mivel ez közvetlen nem fér hozzá az alkalmazásunkhoz, ezért egy megoldásként készíthetünk egy publikus eseményt, mely a Settings Panelen lévő változtatáskor meghívódik, és az alkalmazásunkban pedig feliratkozunk erre az eseményre, és az új értékeknek megfelelően módosítja az alkalmazásunkat is.
Először létrehozzuk a User Control kódjában, majd például egy combobox selectionchanged eseményében meghívjuk:
public static event EventHandler SettingsChangedEvent;
public void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e) { //eltároljuk a változásokat SettingsChangedEvent(this, EventArgs.Empty); }
Nincs más dolgunk, mint az alkalmazásban megmondani, hogy mit csináljon ha ez az esemény megtörténik:
UserControl.SettingsChangedEvent += new EventHandler(UpdateSettingsEvent);
private void UpdateSettingsEvent(object sender, EventArgs e) { //Megcsináljuk a módosításokat }
Ez akkor hasznos, ha rögtön látni szeretnénk a változás eredményeit, például ha különböző színű témák közül szeretnénk választani, de az alkalmazás nyelvét is megváltoztathatjuk anélkül, hogy újra kellene indítani az alkalmazást.