From dc64d5cacb3c71cb62899ef518e2c198909cf1a9 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sat, 18 Apr 2020 17:34:06 +0800 Subject: [PATCH] update demo --- .../Data/DemoInfo.json | 9 ++++--- .../Data/MessageToken.cs | 2 ++ .../Data/MessageToken.tt | 3 ++- .../Properties/Langs/Lang.Designer.cs | 9 +++++++ .../Properties/Langs/Lang.en.resx | 3 +++ .../Properties/Langs/Lang.fa.resx | 3 +++ .../Properties/Langs/Lang.fr.resx | 3 +++ .../Properties/Langs/Lang.ko-KR.resx | 3 +++ .../Properties/Langs/Lang.resx | 3 +++ .../Properties/Langs/LangDecorator.cs | 13 ++++++++++ .../Properties/Langs/LangDecorator.tt | 4 +++- .../Service/Data/DataService.cs | 3 ++- .../UserControl/Main/NoUserContent.xaml.cs | 2 ++ .../ViewModel/Main/MainViewModel.cs | 24 +++++++++++++------ .../Properties/Langs/Lang.Designer.cs | 9 +++++++ .../Properties/Langs/Lang.en.resx | 3 +++ .../Properties/Langs/Lang.fa.resx | 3 +++ .../Properties/Langs/Lang.fr.resx | 3 +++ .../Properties/Langs/Lang.ko-KR.resx | 3 +++ .../Properties/Langs/Lang.resx | 3 +++ .../Properties/Langs/LangDecorator.cs | 13 ++++++++++ .../Properties/Langs/LangDecorator.tt | 4 +++- 22 files changed, 111 insertions(+), 14 deletions(-) diff --git a/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json b/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json index 69a6b1da..e69dda21 100644 --- a/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json +++ b/src/Shared/HandyControlDemo_Shared/Data/DemoInfo.json @@ -1,6 +1,7 @@ [ { "title": "Styles", + "selectedIndex": -1, "demoItemList": [ [ "Brush", "BrushDemoCtl", "Brush_16x", "" ], [ "Button", "ButtonDemoCtl", "ButtonClick_16x", "" ], @@ -30,12 +31,13 @@ [ "ToolBar", "ToolBarDemoCtl", "ToolBar_16x", "" ], [ "Border", "BorderDemoCtl", "BorderElement_16x", "" ], [ "Label", "LabelDemoCtl", "Label_16x", "" ], - [ "Frame", "FrameDemoCtl", "frame_16xLG", "1" ], - [ "Window", "NativeWindowDemoCtl", "WindowsForm_16x", "1" ] + [ "Frame", "FrameDemoCtl", "frame_16xLG", "1" ], + [ "Window", "NativeWindowDemoCtl", "WindowsForm_16x", "1" ] ] }, { "title": "Controls", + "selectedIndex": 0, "demoItemList": [ [ "FloatingBlock", "FloatingBlockDemoCtl", "thumbs_up", "" ], [ "ImageBlock", "ImageBlockDemoCtl", "ImageStack_16x", "" ], @@ -104,9 +106,10 @@ }, { "title": "Tools", + "selectedIndex": 0, "demoItemList": [ [ "HatchBrushGenerator", "HatchBrushGeneratorDemoCtl", "DataGenerator_16x", "" ], - [ "Morphing Animation", "GeometryAnimationDemoCtl", "Animation_16x", "" ], + [ "Morphing_Animation", "GeometryAnimationDemoCtl", "Animation_16x", "" ], [ "Effects", "EffectsDemoCtl", "Effects_16x", "" ] ] } diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs index 456917df..6fdfd99e 100644 --- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs +++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs @@ -48,5 +48,7 @@ public static readonly string DialogContainer = nameof(DialogContainer); + public static readonly string LangUpdated = nameof(LangUpdated); + } } \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt index 9c53e44f..c25e913c 100644 --- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt +++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt @@ -26,7 +26,8 @@ var messageList = new List "GlowWindow", "NativeCommonWindow", "NavigationWindow", - "DialogContainer" + "DialogContainer", + "LangUpdated" }; #> namespace HandyControlDemo.Data diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs index 5fcf9206..eb2498b4 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs @@ -897,6 +897,15 @@ namespace HandyControlDemo.Properties.Langs { } } + /// + /// 查找类似 查找类似 {0} 的本地化字符串。 的本地化字符串。 + /// + public static string LangComment { + get { + return ResourceManager.GetString("LangComment", resourceCulture); + } + } + /// /// 查找类似 列表框 的本地化字符串。 /// diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx index 63f989ac..324db1ca 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx @@ -747,4 +747,7 @@ TextDialog(In control) + + Looks up a localized string similar to "{0}". + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx index e3bb5ced..3166e518 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx @@ -747,4 +747,7 @@ TextDialog(In control) + + Looks up a localized string similar to "{0}". + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx index c24dda27..8e17aff4 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx @@ -747,4 +747,7 @@ TextDialog(In control) + + Looks up a localized string similar to "{0}". + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx index 70c29806..f3f49253 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx @@ -747,4 +747,7 @@ TextDialog(In control) + + Looks up a localized string similar to "{0}". + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx index 736038d0..455582c2 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx @@ -747,4 +747,7 @@ 文本对话框(控件中) + + 查找类似 {0} 的本地化字符串。 + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangDecorator.cs b/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangDecorator.cs index d01cf951..87250d5c 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangDecorator.cs +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangDecorator.cs @@ -26,6 +26,8 @@ namespace HandyControlDemo.Properties.Langs } } + public static string GetLang(string key) => Lang.ResourceManager.GetString(key, Culture); + public static void SetLang(DependencyObject dependencyObject, DependencyProperty dependencyProperty, string key) => BindingOperations.SetBinding(dependencyObject, dependencyProperty, new Binding(key) { @@ -128,6 +130,7 @@ namespace HandyControlDemo.Properties.Langs OnPropertyChanged(nameof(InteractiveDialog)); OnPropertyChanged(nameof(IsNotPhone)); OnPropertyChanged(nameof(Label)); + OnPropertyChanged(nameof(LangComment)); OnPropertyChanged(nameof(ListBox)); OnPropertyChanged(nameof(ListView)); OnPropertyChanged(nameof(Loading)); @@ -712,6 +715,11 @@ namespace HandyControlDemo.Properties.Langs /// public string Label => Lang.Label; + /// + /// 查找类似 查找类似 {0} 的本地化字符串。 的本地化字符串。 + /// + public string LangComment => Lang.LangComment; + /// /// 查找类似 列表框 的本地化字符串。 /// @@ -1771,6 +1779,11 @@ namespace HandyControlDemo.Properties.Langs /// public static string Label = nameof(Label); + /// + /// 查找类似 查找类似 {0} 的本地化字符串。 的本地化字符串。 + /// + public static string LangComment = nameof(LangComment); + /// /// 查找类似 列表框 的本地化字符串。 /// diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangDecorator.tt b/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangDecorator.tt index 65a2cb07..ff00064c 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangDecorator.tt +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/LangDecorator.tt @@ -13,7 +13,7 @@ { langDic[item] = @$"/// - /// 查找类似 {Lang.ResourceManager.GetString(item, Lang.Culture)} 的本地化字符串。 + /// {string.Format(Lang.LangComment, Lang.ResourceManager.GetString(item, Lang.Culture))} /// "; } #> @@ -45,6 +45,8 @@ namespace HandyControlDemo.Properties.Langs } } + public static string GetLang(string key) => Lang.ResourceManager.GetString(key, Culture); + public static void SetLang(DependencyObject dependencyObject, DependencyProperty dependencyProperty, string key) => BindingOperations.SetBinding(dependencyObject, dependencyProperty, new Binding(key) { diff --git a/src/Shared/HandyControlDemo_Shared/Service/Data/DataService.cs b/src/Shared/HandyControlDemo_Shared/Service/Data/DataService.cs index ec054b1d..796d6291 100644 --- a/src/Shared/HandyControlDemo_Shared/Service/Data/DataService.cs +++ b/src/Shared/HandyControlDemo_Shared/Service/Data/DataService.cs @@ -381,7 +381,8 @@ namespace HandyControlDemo.Service { Key = titleKey, Title = title, - DemoItemList = list + DemoItemList = list, + SelectedIndex = (int) item.selectedIndex }); } diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Main/NoUserContent.xaml.cs b/src/Shared/HandyControlDemo_Shared/UserControl/Main/NoUserContent.xaml.cs index 08682ac7..8d241ca6 100644 --- a/src/Shared/HandyControlDemo_Shared/UserControl/Main/NoUserContent.xaml.cs +++ b/src/Shared/HandyControlDemo_Shared/UserControl/Main/NoUserContent.xaml.cs @@ -1,6 +1,7 @@ using System.Globalization; using System.Windows; using System.Windows.Controls; +using GalaSoft.MvvmLight.Messaging; using HandyControl.Data; using HandyControl.Tools; using HandyControlDemo.Data; @@ -24,6 +25,7 @@ namespace HandyControlDemo.UserControl if (tag.Equals(GlobalData.Config.Lang)) return; ConfigHelper.Instance.SetLang(tag); LangDecorator.Culture = new CultureInfo(tag); + Messenger.Default.Send(null, "LangUpdated"); GlobalData.Config.Lang = tag; GlobalData.Save(); diff --git a/src/Shared/HandyControlDemo_Shared/ViewModel/Main/MainViewModel.cs b/src/Shared/HandyControlDemo_Shared/ViewModel/Main/MainViewModel.cs index bf60a190..3ed86466 100644 --- a/src/Shared/HandyControlDemo_Shared/ViewModel/Main/MainViewModel.cs +++ b/src/Shared/HandyControlDemo_Shared/ViewModel/Main/MainViewModel.cs @@ -9,6 +9,7 @@ using GalaSoft.MvvmLight.CommandWpf; using GalaSoft.MvvmLight.Messaging; using HandyControl.Controls; using HandyControlDemo.Data; +using HandyControlDemo.Properties.Langs; using HandyControlDemo.Service; using HandyControlDemo.Tools; using HandyControlDemo.UserControl; @@ -56,6 +57,11 @@ namespace HandyControlDemo.ViewModel } }); + Messenger.Default.Register(this, MessageToken.LangUpdated, obj => + { + ContentTitle = LangDecorator.GetLang(DemoItemCurrent.Name); + }); + DataList = dataService.GetDemoDataList(); DemoInfoList = dataService.GetDemoInfo(); } @@ -141,16 +147,20 @@ namespace HandyControlDemo.ViewModel if (e.AddedItems[0] is DemoItemModel item) { if (Equals(DemoItemCurrent, item)) return; - - DemoItemCurrent = item; - ContentTitle = item.Name; - var obj = AssemblyHelper.ResolveByKey(item.TargetCtlName); - var ctl = obj ?? AssemblyHelper.CreateInternalInstance($"UserControl.{item.TargetCtlName}"); - Messenger.Default.Send(ctl is IFull, MessageToken.FullSwitch); - Messenger.Default.Send(ctl, MessageToken.LoadShowContent); + SwitchDemo(item); } } + private void SwitchDemo(DemoItemModel item) + { + DemoItemCurrent = item; + ContentTitle = LangDecorator.GetLang(item.Name); + var obj = AssemblyHelper.ResolveByKey(item.TargetCtlName); + var ctl = obj ?? AssemblyHelper.CreateInternalInstance($"UserControl.{item.TargetCtlName}"); + Messenger.Default.Send(ctl is IFull, MessageToken.FullSwitch); + Messenger.Default.Send(ctl, MessageToken.LoadShowContent); + } + private void OpenPracticalDemo() { Messenger.Default.Send(null, MessageToken.ClearLeftSelected); diff --git a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.Designer.cs b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.Designer.cs index 528bdaf1..88845f2f 100644 --- a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.Designer.cs +++ b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.Designer.cs @@ -249,6 +249,15 @@ namespace HandyControl.Properties.Langs { } } + /// + /// 查找类似 查找类似 {0} 的本地化字符串。 的本地化字符串。 + /// + public static string LangComment { + get { + return ResourceManager.GetString("LangComment", resourceCulture); + } + } + /// /// 查找类似 下一页 的本地化字符串。 /// diff --git a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.en.resx b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.en.resx index fb6a62c5..2b7c279a 100644 --- a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.en.resx +++ b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.en.resx @@ -228,4 +228,7 @@ Find + + Looks up a localized string similar to "{0}". + \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.fa.resx b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.fa.resx index 199a5a24..d41d8dae 100644 --- a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.fa.resx +++ b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.fa.resx @@ -228,4 +228,7 @@ Find + + Looks up a localized string similar to "{0}". + \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.fr.resx b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.fr.resx index d2a35067..df8fb2d0 100644 --- a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.fr.resx +++ b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.fr.resx @@ -228,4 +228,7 @@ Find + + Looks up a localized string similar to "{0}". + \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.ko-KR.resx b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.ko-KR.resx index 8a824eee..970cbc3f 100644 --- a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.ko-KR.resx +++ b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.ko-KR.resx @@ -228,4 +228,7 @@ Find + + Looks up a localized string similar to "{0}". + \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.resx b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.resx index 0a741524..471e5f02 100644 --- a/src/Shared/HandyControl_Shared/Properties/Langs/Lang.resx +++ b/src/Shared/HandyControl_Shared/Properties/Langs/Lang.resx @@ -228,4 +228,7 @@ 查找 + + 查找类似 {0} 的本地化字符串。 + \ No newline at end of file diff --git a/src/Shared/HandyControl_Shared/Properties/Langs/LangDecorator.cs b/src/Shared/HandyControl_Shared/Properties/Langs/LangDecorator.cs index 3208ab42..4eded3d3 100644 --- a/src/Shared/HandyControl_Shared/Properties/Langs/LangDecorator.cs +++ b/src/Shared/HandyControl_Shared/Properties/Langs/LangDecorator.cs @@ -26,6 +26,8 @@ namespace HandyControl.Properties.Langs } } + public static string GetLang(string key) => Lang.ResourceManager.GetString(key, Culture); + public static void SetLang(DependencyObject dependencyObject, DependencyProperty dependencyProperty, string key) => BindingOperations.SetBinding(dependencyObject, dependencyProperty, new Binding(key) { @@ -56,6 +58,7 @@ namespace HandyControl.Properties.Langs OnPropertyChanged(nameof(Interval30s)); OnPropertyChanged(nameof(Interval5m)); OnPropertyChanged(nameof(IsNecessary)); + OnPropertyChanged(nameof(LangComment)); OnPropertyChanged(nameof(NextPage)); OnPropertyChanged(nameof(No)); OnPropertyChanged(nameof(OutOfRange)); @@ -179,6 +182,11 @@ namespace HandyControl.Properties.Langs /// public string IsNecessary => Lang.IsNecessary; + /// + /// 查找类似 查找类似 {0} 的本地化字符串。 的本地化字符串。 + /// + public string LangComment => Lang.LangComment; + /// /// 查找类似 下一页 的本地化字符串。 /// @@ -373,6 +381,11 @@ namespace HandyControl.Properties.Langs /// public static string IsNecessary = nameof(IsNecessary); + /// + /// 查找类似 查找类似 {0} 的本地化字符串。 的本地化字符串。 + /// + public static string LangComment = nameof(LangComment); + /// /// 查找类似 下一页 的本地化字符串。 /// diff --git a/src/Shared/HandyControl_Shared/Properties/Langs/LangDecorator.tt b/src/Shared/HandyControl_Shared/Properties/Langs/LangDecorator.tt index c4d1fb1d..4e93ffb0 100644 --- a/src/Shared/HandyControl_Shared/Properties/Langs/LangDecorator.tt +++ b/src/Shared/HandyControl_Shared/Properties/Langs/LangDecorator.tt @@ -13,7 +13,7 @@ { langDic[item] = @$"/// - /// 查找类似 {Lang.ResourceManager.GetString(item, Lang.Culture)} 的本地化字符串。 + /// {string.Format(Lang.LangComment, Lang.ResourceManager.GetString(item, Lang.Culture))} /// "; } #> @@ -45,6 +45,8 @@ namespace HandyControl.Properties.Langs } } + public static string GetLang(string key) => Lang.ResourceManager.GetString(key, Culture); + public static void SetLang(DependencyObject dependencyObject, DependencyProperty dependencyProperty, string key) => BindingOperations.SetBinding(dependencyObject, dependencyProperty, new Binding(key) {