/// <summary> /// 添加频道对话框 /// </summary> public AddChannelDialog() { this.InitializeComponent(); Title = AppTools.GetReswLanguage("Tip_AddChannel"); PrimaryButtonText = AppTools.GetReswLanguage("Tip_Confirm"); SecondaryButtonText = AppTools.GetReswLanguage("Tip_Cancel"); }
private async Task ValidateChannelLink() { var reg = new Regex(@"(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]"); string link = ChannelLinkTextBox.Text.Trim(); if (string.IsNullOrEmpty(link)) { new PopupToast(AppTools.GetReswLanguage("Tip_FieldEmpty"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } else { TryLinkButton.IsEnabled = false; LoadingRing.IsActive = true; if (!reg.IsMatch(link)) { var results = await FeedlyResult.GetFeedlyResultFromText(link); TryLinkButton.IsEnabled = true; LoadingRing.IsActive = false; if (results.Count > 0) { SearchResultContainer.Visibility = Visibility.Visible; FeedlyResults.Clear(); foreach (var item in results) { FeedlyResults.Add(item); } } else { SearchResultContainer.Visibility = Visibility.Collapsed; FeedlyResults.Clear(); new PopupToast(AppTools.GetReswLanguage("Tip_NoData"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } } else { var channel = await AppTools.GetChannelFromUrl(link); if (channel != null && !string.IsNullOrEmpty(channel.Name)) { _sourceChannel = channel; LoadingRing.IsActive = false; TryLinkButton.IsEnabled = true; DetailContainer.Visibility = Visibility.Visible; if (string.IsNullOrEmpty(ChannelNameTextBox.Text) && string.IsNullOrEmpty(ChannelDescriptionTextBox.Text)) { ChannelNameTextBox.Text = channel.Name; ChannelDescriptionTextBox.Text = channel.Description; } } else { LoadingRing.IsActive = false; TryLinkButton.IsEnabled = true; new PopupToast(AppTools.GetReswLanguage("App_InvalidUrl"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } } } }
/// <summary> /// 文章详情页面,主体是WebView /// </summary> public FeedDetailPage() { this.InitializeComponent(); Current = this; NavigationCacheMode = NavigationCacheMode.Enabled; ToolTipService.SetToolTip(AddTodoButton, AppTools.GetReswLanguage("Tip_AddTodoList")); ToolTipService.SetToolTip(RemoveTodoButton, AppTools.GetReswLanguage("Tip_DeleteTodoList")); ToolTipService.SetToolTip(AddStarButton, AppTools.GetReswLanguage("Tip_AddStarList")); ToolTipService.SetToolTip(RemoveStarButton, AppTools.GetReswLanguage("Tip_DeleteStarList")); ToolTipService.SetToolTip(ReadabilityButton, AppTools.GetReswLanguage("Tip_Readability")); bool isSideLocked = Convert.ToBoolean(AppTools.GetLocalSetting(AppSettings.SideListLocked, "False")); if (!isSideLocked) { LockButton.Foreground = AppTools.GetThemeSolidColorBrush(ColorType.ImportantTextColor); } else { LockButton.Foreground = AppTools.GetThemeSolidColorBrush(ColorType.PrimaryColor); } if (_latestPoint == null) { this.PointerPressed += (_s, _e) => { }; } }
private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { // 需要检查组名是否为空(或者只包含空格) // 检查组名是否重复 args.Cancel = true; string groupName = GroupInputBox.Text.Trim(); if (!string.IsNullOrEmpty(groupName)) { bool isIn = App.Db.Groups.Any(p => p.GroupName.ToLower() == groupName.ToLower()); if (!isIn) { var group = new OneDriveImageGroup(groupName); await App.OneDriveTools.AddGroupToDatabase(App.Db, group); new PopupMaskTip(AppTools.GetReswLanguage("AddGroupSuccess")).Show(); MainPage.Current.GroupCollectionAdd(group); this.Hide(); return; } else { new PopupMaskTip(AppTools.GetReswLanguage("GroupNameRepeat")).Show(); } } else { new PopupMaskTip(AppTools.GetReswLanguage("GroupNameEmpty")).Show(); } }
public AddGroupDialog() { this.InitializeComponent(); Title = AppTools.GetReswLanguage("AddGroupTitle"); PrimaryButtonText = AppTools.GetReswLanguage("OK"); SecondaryButtonText = AppTools.GetReswLanguage("Cancel"); }
public FilterRule(FilterRuleType type) : base() { Type = type; switch (type) { case FilterRuleType.Filter: RuleName = AppTools.GetReswLanguage("Tip_RuleFilter"); break; case FilterRuleType.FilterOut: RuleName = AppTools.GetReswLanguage("Tip_RuleFilterOut"); break; case FilterRuleType.TotalLimit: RuleName = AppTools.GetReswLanguage("Tip_TotalLimit"); break; case FilterRuleType.SingleLimit: RuleName = AppTools.GetReswLanguage("Tip_SingleLimit"); break; default: break; } }
private async Task AddCategory() { string icon = IconTextBlock.Text; string name = CategoryNameTextBox.Text; if (!string.IsNullOrEmpty(icon) && !string.IsNullOrEmpty(name)) { IsPrimaryButtonEnabled = false; PrimaryButtonText = AppTools.GetReswLanguage("Tip_Waiting"); var cate = new Category(name, icon); MainPage.Current.Categories.Add(cate); MainPage.Current._categoryListCount += 1; new PopupToast(AppTools.GetReswLanguage("Tip_AddCategorySuccess")).ShowPopup(); Hide(); try { await IOTools.AddCategory(cate); } catch (Exception) { await Task.Delay(1000); await IOTools.AddCategory(cate); } } else { new PopupToast(AppTools.GetReswLanguage("Tip_FieldEmpty"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } }
private async void ExportOpmlButton_Click(object sender, RoutedEventArgs e) { ExportOpmlButton.IsEnabled = false; ExportOpmlButton.Content = AppTools.GetReswLanguage("Tip_Waiting"); var allList = MainPage.Current.Categories.ToList(); try { var opml = new Opml(allList); string content = opml.ToString(); string fileName = AppTools.GetLocalSetting(AppSettings.UserName, "") + "_" + DateTime.Now.ToString("yyyyMMdd_HH_mm_ss") + ".opml"; var file = await IOTools.GetSaveFile(".opml", fileName, "OPML File"); if (file != null) { await FileIO.WriteTextAsync(file, content); new PopupToast(AppTools.GetReswLanguage("Tip_ExportSuccess")).ShowPopup(); } } catch (Exception) { new PopupToast(AppTools.GetReswLanguage("Tip_ImportError"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } ExportOpmlButton.IsEnabled = true; ExportOpmlButton.Content = AppTools.GetReswLanguage("Tip_Export"); }
private async void TryListenButton_Click(object sender, RoutedEventArgs e) { string content = AppTools.GetReswLanguage("Tip_SpeechTest"); //string content = "This choice of voice is reflected in the SpeechSynthesizer."; await SpeakTextAsync(content); }
private async void OneDriveInit() { try { UpdateLoadingRing.IsActive = true; // 检查OneDrive授权并获取应用文件夹 await App.OneDriveTools.OneDriveAuthorize(); // 检查云端数据库是否需要同步最新更改 bool isNoNeedSync = await App.OneDriveTools.CheckLastAsync(); if (!isNoNeedSync) { new PopupMaskTip(AppTools.GetReswLanguage("HaveUpdate")).Show(); App.Db.Dispose(); // 从别的客户端处修改了数据,那么本机进行数据同步 await App.OneDriveTools.SyncCloud(); App.Db = new ImageDbContext(); } UpdateLoadingRing.IsActive = false; } catch (Exception ex) { UpdateLoadingRing.IsActive = false; // 这里可能会出现授权失败的情况 if (ex.GetType() == typeof(UnauthorizedAccessException)) { } else { throw; } } }
public LoginPage() { this.InitializeComponent(); AppTools.SetTitleBarColorInit(App.Current.RequestedTheme == ApplicationTheme.Dark); ToolTipService.SetToolTip(OpenSourceButton, AppTools.GetReswLanguage("OpenSourceButton")); ToolTipService.SetToolTip(UseInfoButton, AppTools.GetReswLanguage("UseInfoButton")); }
private async void ClearCacheButton_Click(object sender, RoutedEventArgs e) { await IOTools.DeleteCache(); new PopupToast(AppTools.GetReswLanguage("Tip_ClearSuccess")).ShowPopup(); CacheSizeTextBlock.Text = await IOTools.GetCacheSize(); }
private async void RemoveToastButton_Click(object sender, RoutedEventArgs e) { (sender as Button).IsEnabled = false; var data = (sender as Button).DataContext as Channel; if (data != null) { if (SettingPivot.SelectedIndex == 3) { await IOTools.RemoveNeedToastChannel(data); ToastChannels.Remove(data); MainPage.Current.ToastList.RemoveAll(p => p.Id == data.Id); } else if (SettingPivot.SelectedIndex == 4) { await IOTools.RemoveNeedReadableChannel(data); ReadableChannels.Remove(data); MainPage.Current.ReadableList.RemoveAll(p => p.Id == data.Id); } new PopupToast(AppTools.GetReswLanguage("Tip_Removed")).ShowPopup(); } (sender as Button).IsEnabled = true; }
private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { args.Cancel = true; string icon = IconTextBlock.Text; string name = CategoryNameTextBox.Text; if (!string.IsNullOrEmpty(icon) && !string.IsNullOrEmpty(name)) { IsPrimaryButtonEnabled = false; PrimaryButtonText = AppTools.GetReswLanguage("Tip_Waiting"); _sourceCategory.Name = name; _sourceCategory.Icon = icon; foreach (var item in MainPage.Current.Categories) { if (item.Id == _sourceCategory.Id) { item.Name = _sourceCategory.Name; item.Icon = _sourceCategory.Icon; } } new PopupToast(AppTools.GetReswLanguage("Tip_UpdateCategorySuccess")).ShowPopup(); Hide(); await IOTools.UpdateCategory(_sourceCategory); } else { new PopupToast(AppTools.GetReswLanguage("Tip_FieldEmpty"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } }
private async Task FeedReInit(RssSchema data) { bool isUnread = Convert.ToBoolean(AppTools.GetLocalSetting(AppSettings.IsJustUnread, "False")); if (!isUnread) { ShowFeeds.Insert(0, _sourceFeed); } ShowFeeds.Remove(data); _sourceFeed = data; LoadingRing.IsActive = true; if (MainPage.Current.ChannelListView.SelectedItem != null) { var selectChannel = MainPage.Current.ChannelListView.SelectedItem as Channel; if (MainPage.Current.ReadableList.Any(c => c.Id == selectChannel.Id)) { DetailWebView.NavigateToString(""); SmartReader.Article article = await SmartReader.Reader.ParseArticleAsync(_sourceFeed.FeedUrl); if (article.IsReadable || !string.IsNullOrEmpty(article.TextContent)) { _sourceFeed.Content = article.Content; } else { new PopupToast(AppTools.GetReswLanguage("Tip_ReadError"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } } } await UpdateFeed(); LoadingRing.IsActive = false; }
public GroupDialog() { this.InitializeComponent(); Title = AppTools.GetReswLanguage("GroupDialogTitle"); PrimaryButtonText = AppTools.GetReswLanguage("OK"); SecondaryButtonText = AppTools.GetReswLanguage("Cancel"); var group = App.Db.Groups; foreach (var item in group) { GroupCollection.Add(item); } string selectId = AppTools.GetLocalSetting(AppSettings.SelectGroupIndex, ""); foreach (var item in GroupCollection) { if (item.GroupId == selectId) { GroupCombo.SelectedItem = item; SelectGroup = item; } } if (SelectGroup == null) { GroupCombo.SelectedItem = GroupCollection.First(); SelectGroup = GroupCollection.First(); } isInit = true; }
public Feed(RssSchema schema) { Title = schema.Title ?? ""; Summary = schema.Summary ?? ""; Content = schema.Content ?? ""; string theme = AppTools.GetLocalSetting(Enums.AppSettings.Theme, "Light").ToLower(); ImageUrl = schema.ImageUrl; if (string.IsNullOrEmpty(ImageUrl)) { ImgVisibility = Visibility.Collapsed; } else if (ImageUrl.StartsWith("//")) { ImageUrl = "http:" + ImageUrl; } ExtraImageUrl = schema.ExtraImageUrl ?? ""; MediaUrl = schema.MediaUrl ?? ""; InternalID = schema.InternalID; FeedUrl = schema.FeedUrl; Author = schema.Author ?? AppTools.GetReswLanguage("App_NoAuthor"); Date = schema.PublishDate.ToString(AppTools.GetReswLanguage("App_DateFormat")); Categories = schema.Categories; if (Categories == null || Categories.Count() == 0) { TagVisibility = Visibility.Collapsed; } }
private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { args.Cancel = true; string name = ChannelNameTextBox.Text?.Trim(); string des = ChannelDescriptionTextBox.Text?.Trim(); string link = ChannelLinkTextBox.Text?.Trim(); var reg = new Regex(@"(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]"); if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(des) || string.IsNullOrEmpty(link)) { new PopupToast(AppTools.GetReswLanguage("Tip_FieldEmpty"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); return; } else if (!reg.IsMatch(link)) { new PopupToast(AppTools.GetReswLanguage("Tip_FieldFormatError"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); return; } else { _sourceChannel.Name = name; _sourceChannel.Description = des; _sourceChannel.Link = link; var sourceCategory = MainPage.Current.CategoryListView.SelectedItem as Category; if (sourceCategory != null) { IsPrimaryButtonEnabled = false; PrimaryButtonText = AppTools.GetReswLanguage("Tip_Waiting"); foreach (var item in sourceCategory.Channels) { if (item.Id == _sourceChannel.Id) { item.Name = name; item.Description = des; item.Link = link; } } if (MainPage.Current.MainFrame.Content is Pages.ChannelDetailPage) { if (Pages.ChannelDetailPage.Current._sourceData.Id == _sourceChannel.Id) { Pages.ChannelDetailPage.Current.ChannelNameTextBlock.Text = name; Pages.ChannelDetailPage.Current.ChannelDescriptionTextBlock.Text = des; Pages.ChannelDetailPage.Current._sourceData.Name = name; Pages.ChannelDetailPage.Current._sourceData.Description = des; Pages.ChannelDetailPage.Current._sourceData.Link = link; } } new PopupToast(AppTools.GetReswLanguage("Tip_UpdateChannelSuccess")).ShowPopup(); Hide(); await IOTools.UpdateCategory(sourceCategory); } else { new PopupToast(AppTools.GetReswLanguage("Tip_NoCategorySelected"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); return; } } }
/// <summary> /// 移动频道对话框 /// </summary> /// <param name="data">数据</param> public MoveChannelDialog(Channel data) { this.InitializeComponent(); _sourceChannel = data; Title = AppTools.GetReswLanguage("Tip_MoveChannel"); PrimaryButtonText = AppTools.GetReswLanguage("Tip_Confirm"); SecondaryButtonText = AppTools.GetReswLanguage("Tip_Cancel"); }
public AuthKeyDialog() { this.InitializeComponent(); Title = AppTools.GetReswLanguage("AuthorizeTitle"); TipContentBlock.Text = AppTools.GetReswLanguage("AuthKeyTip"); PrimaryButtonText = AppTools.GetReswLanguage("Authorize"); CloseButtonText = AppTools.GetReswLanguage("Cancel"); }
public TipDialog(string title, string tip, string pr, string sec) : this() { Title = title; TipContentBlock.Text = tip; PrimaryButtonText = pr; SecondaryButtonText = sec; CloseButtonText = AppTools.GetReswLanguage("Cancel"); }
private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args) { args.Cancel = true; if (_sourceChannel != null) { string showName = ChannelNameTextBox.Text; string showDescription = ChannelDescriptionTextBox.Text; if (!string.IsNullOrEmpty(showName)) { _sourceChannel.Name = showName; } if (!string.IsNullOrEmpty(showDescription)) { _sourceChannel.Description = showDescription; } var selectCategory = MainPage.Current.CategoryListView.SelectedItem as Category; if (selectCategory != null) { if (selectCategory.Channels.Any(c => c.Link.ToLower() == _sourceChannel.Link)) { new PopupToast(AppTools.GetReswLanguage("Tip_ChannelRepeat"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); return; } else { IsPrimaryButtonEnabled = false; PrimaryButtonText = AppTools.GetReswLanguage("Tip_Waiting"); selectCategory.Channels.Add(_sourceChannel); MainPage.Current.Channels.Add(_sourceChannel); MainPage.Current._channelListCount += 1; int count = Convert.ToInt32(MainPage.Current.TotalSourceNumRun.Text); count++; MainPage.Current.TotalSourceNumRun.Text = count.ToString(); new PopupToast(AppTools.GetReswLanguage("Tip_AddChannelSuccess")).ShowPopup(); Hide(); try { await IOTools.UpdateCategory(selectCategory); } catch (Exception) { await Task.Delay(1000); await IOTools.UpdateCategory(selectCategory); } } } else { new PopupToast(AppTools.GetReswLanguage("Tip_NoCategorySelected"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); return; } } else { new PopupToast(AppTools.GetReswLanguage("Tip_TryLinkFirst"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } }
/// <summary> /// 更新布局,获取最新资讯 /// </summary> /// <param name="page">频道数据</param> /// <returns></returns> public async Task UpdateLayout(CustomPage page, bool isForceRefresh = false) { AllFeeds.Clear(); LoadingRing.IsActive = true; JustNoReadSwitch.IsEnabled = false; AllReadButton.Visibility = Visibility.Collapsed; LastCacheTimeContainer.Visibility = Visibility.Collapsed; NoDataTipContainer.Visibility = Visibility.Collapsed; AllReadTipContainer.Visibility = Visibility.Collapsed; _sourceData = page; PageNameTextBlock.Text = _sourceData.Name; FeedCollection.Clear(); var feed = new List <RssSchema>(); if (NetworkHelper.Instance.ConnectionInformation.IsInternetAvailable) { var schema = await IOTools.GetSchemaFromPage(_sourceData); foreach (var item in schema) { feed.Add(item); } bool isAutoCache = Convert.ToBoolean(AppTools.GetLocalSetting(AppSettings.AutoCacheWhenOpenChannel, "False")); if (isAutoCache && feed.Count > 0) { await IOTools.AddCachePage(null, page); } } else { if (MainPage.Current._isCacheAlert) { new PopupToast(AppTools.GetReswLanguage("Tip_WatchingCache")).ShowPopup(); MainPage.Current._isCacheAlert = false; } var data = await IOTools.GetLocalCache(page); feed = data.Item1; _lastCacheTime = data.Item2; if (_lastCacheTime > 0) { LastCacheTimeContainer.Visibility = Visibility.Visible; LastCacheTimeBlock.Text = AppTools.TimeStampToDate(_lastCacheTime).ToString("HH:mm"); } } if (feed != null && feed.Count > 0) { AllFeeds = feed; await FeedInit(); } else { NoDataTipContainer.Visibility = Visibility.Visible; } JustNoReadSwitch.IsEnabled = true; LoadingRing.IsActive = false; }
protected override void OnNavigatedTo(NavigationEventArgs e) { MainPage.Current._isChannelAbout = true; AllList.Clear(); IconCollection.Clear(); RuleCollection.Clear(); foreach (var item in MainPage.Current.Categories) { AllList.Add(new GroupChannelList(item.Channels) { Key = item.Name }); } var iconList = AppTools.GetIcons(); foreach (var item in iconList) { IconCollection.Add(item); } var rules = FilterRule.GetRules(); foreach (var item in rules) { RuleCollection.Add(item); } if (e.Parameter != null) { if (e.Parameter is CustomPage) { _sourcePage = e.Parameter as CustomPage; IconTextBlock.Text = _sourcePage.Icon; PageNameTextBox.Text = _sourcePage.Name; FilterCollection.Clear(); foreach (var item in _sourcePage.Rules) { FilterCollection.Add(item); } foreach (var item in AllList) { item.RemoveAll(p => _sourcePage.Channels.Any(i => i.Id == p.Id)); } AllList.Insert(0, new GroupChannelList(_sourcePage.Channels) { Key = AppTools.GetReswLanguage("Tip_Selected") }); SourceChannelCollection = new ObservableCollection <GroupChannelList>(AllList); } } else { IconTextBlock.Text = IconCollection.First(); SourceChannelCollection = new ObservableCollection <GroupChannelList>(AllList); } }
public ModifyChannelDialog(Channel data) { this.InitializeComponent(); _sourceChannel = data; Title = AppTools.GetReswLanguage("Tip_UpdateChannel"); PrimaryButtonText = AppTools.GetReswLanguage("Tip_Confirm"); SecondaryButtonText = AppTools.GetReswLanguage("Tip_Cancel"); ChannelLinkTextBox.Text = data.Link; ChannelNameTextBox.Text = data.Name; ChannelDescriptionTextBox.Text = data.Description; }
private async void SelectMenu_Mark_Click(object sender, RoutedEventArgs e) { try { await DetailWebView.InvokeScriptAsync("setMark", new string[] { }); } catch (Exception) { new PopupToast(AppTools.GetReswLanguage("Tip_DoNotMarkAgain"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } }
private async void OpenChannelButton_Click(object sender, RoutedEventArgs e) { if (!string.IsNullOrEmpty(_sourceData.SourceUrl)) { await Launcher.LaunchUriAsync(new Uri(_sourceData.SourceUrl)); } else { new PopupToast(AppTools.GetReswLanguage("App_InvalidUrl"), AppTools.GetThemeSolidColorBrush(ColorType.ErrorColor)).ShowPopup(); } }
private void LanguageComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (!_isInit) { return; } var item = LanguageComboBox.SelectedItem as ComboBoxItem; AppTools.WriteRoamingSetting(AppSettings.Language, item.Name); new PopupToast(AppTools.GetReswLanguage("Tip_NeedRestartApp")).ShowPopup(); }
/// <summary> /// 百度翻译令牌对话框 /// </summary> public BaiduTranslateDialog() { this.InitializeComponent(); string oldAppId = AppTools.GetRoamingSetting(AppSettings.Translate_BaiduAppId, ""); string oldKey = AppTools.GetRoamingSetting(AppSettings.Translate_BaiduKey, ""); AppIdTextBox.Text = oldAppId; KeyTextBox.Text = oldKey; Title = AppTools.GetReswLanguage("Tip_BaiduTranslateDialog"); PrimaryButtonText = AppTools.GetReswLanguage("Tip_Confirm"); SecondaryButtonText = AppTools.GetReswLanguage("Tip_Cancel"); }
private void ThemeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (!_isInit) { return; } var item = ThemeComboBox.SelectedItem as ComboBoxItem; AppTools.WriteRoamingSetting(AppSettings.Theme, item.Name); MainPage.Current.RequestedTheme = item.Name == "Light" ? ElementTheme.Light : ElementTheme.Dark; new PopupToast(AppTools.GetReswLanguage("Tip_NeedRestartApp")).ShowPopup(); }