From 724a528b1603be8af859a50c8b454dcc90cb3ac6 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Thu, 18 Jul 2024 16:45:50 +0800 Subject: [PATCH] feat: try to fix trimming compatibility. --- .run/SC-Single.run.xml | 2 +- .../Semi.Avalonia.Demo.Desktop.csproj | 5 +++++ demo/Semi.Avalonia.Demo/Roots.xml | 5 ----- demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj | 1 - src/Package.props | 2 +- src/Semi.Avalonia.ColorPicker/Index.axaml | 4 ++-- .../Semi.Avalonia.ColorPicker.csproj | 4 ++++ src/Semi.Avalonia.DataGrid/Index.axaml | 4 ++-- .../Semi.Avalonia.DataGrid.csproj | 4 ++++ .../Semi.Avalonia.TreeDataGrid.csproj | 4 ++++ src/Semi.Avalonia/Locale/en-us.axaml.cs | 8 ++++++++ src/Semi.Avalonia/Locale/zh-cn.axaml.cs | 8 ++++++++ src/Semi.Avalonia/Semi.Avalonia.csproj | 3 +++ src/Semi.Avalonia/Themes/Index.axaml | 4 ++-- src/Semi.Avalonia/Themes/SemiTheme.axaml | 4 ++-- src/Semi.Avalonia/Themes/SemiTheme.axaml.cs | 15 +++++++-------- 16 files changed, 53 insertions(+), 24 deletions(-) delete mode 100644 demo/Semi.Avalonia.Demo/Roots.xml create mode 100644 src/Semi.Avalonia/Locale/en-us.axaml.cs create mode 100644 src/Semi.Avalonia/Locale/zh-cn.axaml.cs diff --git a/.run/SC-Single.run.xml b/.run/SC-Single.run.xml index 1629fa5..269629d 100644 --- a/.run/SC-Single.run.xml +++ b/.run/SC-Single.run.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj b/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj index 14f9ffa..4418249 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj +++ b/demo/Semi.Avalonia.Demo.Desktop/Semi.Avalonia.Demo.Desktop.csproj @@ -11,6 +11,11 @@ --> + + true + true + + app.manifest diff --git a/demo/Semi.Avalonia.Demo/Roots.xml b/demo/Semi.Avalonia.Demo/Roots.xml deleted file mode 100644 index 22c01ba..0000000 --- a/demo/Semi.Avalonia.Demo/Roots.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj b/demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj index 8b1e2c3..757b062 100644 --- a/demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj +++ b/demo/Semi.Avalonia.Demo/Semi.Avalonia.Demo.csproj @@ -7,7 +7,6 @@ - diff --git a/src/Package.props b/src/Package.props index 3010a44..dd12a5c 100644 --- a/src/Package.props +++ b/src/Package.props @@ -1,6 +1,6 @@ - net6.0;netstandard2.0 + net6.0;net8.0;netstandard2.0 enable latest 11.1.0-rc2 diff --git a/src/Semi.Avalonia.ColorPicker/Index.axaml b/src/Semi.Avalonia.ColorPicker/Index.axaml index 2af9525..32b0f04 100644 --- a/src/Semi.Avalonia.ColorPicker/Index.axaml +++ b/src/Semi.Avalonia.ColorPicker/Index.axaml @@ -2,8 +2,8 @@ - - + + diff --git a/src/Semi.Avalonia.ColorPicker/Semi.Avalonia.ColorPicker.csproj b/src/Semi.Avalonia.ColorPicker/Semi.Avalonia.ColorPicker.csproj index ec355ce..a83a8de 100644 --- a/src/Semi.Avalonia.ColorPicker/Semi.Avalonia.ColorPicker.csproj +++ b/src/Semi.Avalonia.ColorPicker/Semi.Avalonia.ColorPicker.csproj @@ -7,6 +7,10 @@ Update to Avalonia 11.1-rc1 + + true + + diff --git a/src/Semi.Avalonia.DataGrid/Index.axaml b/src/Semi.Avalonia.DataGrid/Index.axaml index 29ddeaa..4d798eb 100644 --- a/src/Semi.Avalonia.DataGrid/Index.axaml +++ b/src/Semi.Avalonia.DataGrid/Index.axaml @@ -2,8 +2,8 @@ - - + + diff --git a/src/Semi.Avalonia.DataGrid/Semi.Avalonia.DataGrid.csproj b/src/Semi.Avalonia.DataGrid/Semi.Avalonia.DataGrid.csproj index d74456e..2d025be 100644 --- a/src/Semi.Avalonia.DataGrid/Semi.Avalonia.DataGrid.csproj +++ b/src/Semi.Avalonia.DataGrid/Semi.Avalonia.DataGrid.csproj @@ -7,6 +7,10 @@ Update to Avalonia 11.1-rc1 + + true + + diff --git a/src/Semi.Avalonia.TreeDataGrid/Semi.Avalonia.TreeDataGrid.csproj b/src/Semi.Avalonia.TreeDataGrid/Semi.Avalonia.TreeDataGrid.csproj index 054e41b..efb7e6d 100644 --- a/src/Semi.Avalonia.TreeDataGrid/Semi.Avalonia.TreeDataGrid.csproj +++ b/src/Semi.Avalonia.TreeDataGrid/Semi.Avalonia.TreeDataGrid.csproj @@ -14,6 +14,10 @@ 11.0.0 + + true + + diff --git a/src/Semi.Avalonia/Locale/en-us.axaml.cs b/src/Semi.Avalonia/Locale/en-us.axaml.cs new file mode 100644 index 0000000..f9a9730 --- /dev/null +++ b/src/Semi.Avalonia/Locale/en-us.axaml.cs @@ -0,0 +1,8 @@ +using Avalonia.Controls; + +namespace Semi.Avalonia.Locale; + +public class en_us: ResourceDictionary +{ + +} \ No newline at end of file diff --git a/src/Semi.Avalonia/Locale/zh-cn.axaml.cs b/src/Semi.Avalonia/Locale/zh-cn.axaml.cs new file mode 100644 index 0000000..530a7de --- /dev/null +++ b/src/Semi.Avalonia/Locale/zh-cn.axaml.cs @@ -0,0 +1,8 @@ +using Avalonia.Controls; + +namespace Semi.Avalonia.Locale; + +public class zh_cn: ResourceDictionary +{ + +} \ No newline at end of file diff --git a/src/Semi.Avalonia/Semi.Avalonia.csproj b/src/Semi.Avalonia/Semi.Avalonia.csproj index 92b1aab..28f222b 100644 --- a/src/Semi.Avalonia/Semi.Avalonia.csproj +++ b/src/Semi.Avalonia/Semi.Avalonia.csproj @@ -5,6 +5,9 @@ Semi.Avalonia Update to Avalonia 11.1-rc1 + + + true diff --git a/src/Semi.Avalonia/Themes/Index.axaml b/src/Semi.Avalonia/Themes/Index.axaml index 5af2035..116b7b5 100644 --- a/src/Semi.Avalonia/Themes/Index.axaml +++ b/src/Semi.Avalonia/Themes/Index.axaml @@ -2,8 +2,8 @@ - - + + diff --git a/src/Semi.Avalonia/Themes/SemiTheme.axaml b/src/Semi.Avalonia/Themes/SemiTheme.axaml index 5e86cb3..52c207f 100644 --- a/src/Semi.Avalonia/Themes/SemiTheme.axaml +++ b/src/Semi.Avalonia/Themes/SemiTheme.axaml @@ -2,8 +2,8 @@ - - + + diff --git a/src/Semi.Avalonia/Themes/SemiTheme.axaml.cs b/src/Semi.Avalonia/Themes/SemiTheme.axaml.cs index bb68581..88268f3 100644 --- a/src/Semi.Avalonia/Themes/SemiTheme.axaml.cs +++ b/src/Semi.Avalonia/Themes/SemiTheme.axaml.cs @@ -4,15 +4,16 @@ using System.Globalization; using Avalonia.Controls; using Avalonia.Markup.Xaml; using Avalonia.Styling; +using Semi.Avalonia.Locale; namespace Semi.Avalonia; public class SemiTheme: Styles { - private static readonly Dictionary _localeToResource = new() + private static readonly Dictionary _localeToResource = new() { - { new CultureInfo("zh-cn"), "avares://Semi.Avalonia/Locale/zh-cn.axaml" }, - { new CultureInfo("en-us"), "avares://Semi.Avalonia/Locale/en-us.axaml" }, + { new CultureInfo("zh-cn"), new zh_cn() }, + { new CultureInfo("en-us"), new en_us() }, }; private readonly IServiceProvider? sp; @@ -30,22 +31,20 @@ public class SemiTheme: Styles { _locale = value; var resource = TryGetLocaleResource(value); - var d = AvaloniaXamlLoader.Load(sp, new Uri(resource)) as ResourceDictionary; - if (d is null) return; - foreach (var kv in d) + if(resource is null) return; + foreach (var kv in resource) { this.Resources.Add(kv); } } } - private static string TryGetLocaleResource(CultureInfo? locale) + private static ResourceDictionary? TryGetLocaleResource(CultureInfo? locale) { if (locale is null) { return _localeToResource[new CultureInfo("zh-cn")]; } - if (_localeToResource.TryGetValue(locale, out var resource)) { return resource;