diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..bcd5bde --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,50 @@ +name: Deploy to GitHub Pages + +env: + PROJECT_PATH: demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj + OUTPUT_PATH: demo/Semi.Avalonia.Demo.Web/bin/Debug/net7.0/browser-wasm/AppBundle +on: + push: + branches: [ "deploy" ] + pull_request: + branches: [ "deploy" ] + +jobs: + deploy-to-github-pages: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Setup .NET Core SDK + uses: actions/setup-dotnet@v1.9.0 + + - name: Install wasm-tools + run: dotnet workload install wasm-tools wasm-experimental + + - name: Install DotNetCompress + run: dotnet tool install --global DotNetCompress --version 2.0.0 --no-cache + + - name: Publish .NET Project + run: dotnet publish $PROJECT_PATH -c Debug -o debug --nologo + + - name: Change base-tag in index.html + run: sed -i 's///g' $OUTPUT_PATH/index.html + + - name: copy index.html to 404.html + run: cp $OUTPUT_PATH/index.html $OUTPUT_PATH/404.html + + - name: Compress Output using Brotli + run: DotNetCompress -d $OUTPUT_PATH -p "*.dll" "*.js" "*.wasm" --format br --threads 4 + + - name: Compress Output using GZip + run: DotNetCompress -d $OUTPUT_PATH -p "*.dll" "*.js" "*.wasm" --format gz --threads 4 + + - name: Add .nojekyll file + run: touch $OUTPUT_PATH/.nojekyll + + - name: Commit wwwroot to GitHub Pages + uses: JamesIves/github-pages-deploy-action@4.1.7 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH: gh-pages + FOLDER: ${{ env.OUTPUT_PATH }} diff --git a/README.md b/README.md index 9050702..1df0117 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Avalonia Theme inspired by Semi Design ## Installation ```bash -dotnet add package Semi.Avalonia --version 11.0.0-rc1 +dotnet add package Semi.Avalonia --version 11.0.0 ``` Include Semi Design Styles in application: @@ -23,8 +23,8 @@ That's all. DataGrid and ColorPicker are distributed in separated packages. Please install if you need. ```bash -dotnet add package Semi.Avalonia.ColorPicker --version 11.0.0-rc1 -dotnet add package Semi.Avalonia.DataGrid --version 11.0.0-rc1 +dotnet add package Semi.Avalonia.ColorPicker --version 11.0.0 +dotnet add package Semi.Avalonia.DataGrid --version 11.0.0 ``` ```xaml @@ -42,20 +42,9 @@ https://github.com/irihitech/Semi.Avalonia/releases | Semi Design Version | Avalonia Version | |:--------------------|:-----------------| -| 11.0.0-rc1 | 11.0.0-rc1.1 | -| 0.1.0-preview3 | 11.0-preview4 | -| 0.1.0-preview5.x | 11.0-preview5 | -| 0.1.0-preview6.x | 11.0-preview6 | -| 0.1.0-preview7.x | 11.0-preview7 | -| 0.1.0-preview8.x | 11.0-preview8 | - -**NOTE** - -Semi Avalonia theme is moving forward together with Avalonia preview versions now. So new feature/fixes are not backported to previous preview versions. If you need a feature/fix for outdated avalonia preview version, please raise an issue so we can do that for you. - +| 11.0.0 | 11.0.0 | ## TODO -* DataValidationErrors * FocusAdorner ## Credits diff --git a/Semi.Avalonia.sln b/Semi.Avalonia.sln index a9245de..827c045 100644 --- a/Semi.Avalonia.sln +++ b/Semi.Avalonia.sln @@ -26,6 +26,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.ColorPicker", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.Demo.Android", "demo\Semi.Avalonia.Demo.Android\Semi.Avalonia.Demo.Android.csproj", "{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.Demo.Drm", "demo\Semi.Avalonia.Demo.Drm\Semi.Avalonia.Demo.Drm.csproj", "{86D93406-412A-4429-93B2-92AAD0407784}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.TreeDataGrid", "src\Semi.Avalonia.TreeDataGrid\Semi.Avalonia.TreeDataGrid.csproj", "{398D2998-0835-41F5-99A3-608CAB8051E2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.TreeDataGrid.Demo", "demo\Semi.Avalonia.TreeDataGrid.Demo\Semi.Avalonia.TreeDataGrid.Demo.csproj", "{6178B545-4BB6-458C-A27C-EE11F3885D38}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -61,6 +67,18 @@ Global {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Debug|Any CPU.Deploy.0 = Debug|Any CPU {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Release|Any CPU.ActiveCfg = Release|Any CPU {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Release|Any CPU.Build.0 = Release|Any CPU + {86D93406-412A-4429-93B2-92AAD0407784}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {86D93406-412A-4429-93B2-92AAD0407784}.Debug|Any CPU.Build.0 = Debug|Any CPU + {86D93406-412A-4429-93B2-92AAD0407784}.Release|Any CPU.ActiveCfg = Release|Any CPU + {86D93406-412A-4429-93B2-92AAD0407784}.Release|Any CPU.Build.0 = Release|Any CPU + {398D2998-0835-41F5-99A3-608CAB8051E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {398D2998-0835-41F5-99A3-608CAB8051E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {398D2998-0835-41F5-99A3-608CAB8051E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {398D2998-0835-41F5-99A3-608CAB8051E2}.Release|Any CPU.Build.0 = Release|Any CPU + {6178B545-4BB6-458C-A27C-EE11F3885D38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6178B545-4BB6-458C-A27C-EE11F3885D38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6178B545-4BB6-458C-A27C-EE11F3885D38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6178B545-4BB6-458C-A27C-EE11F3885D38}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -70,6 +88,8 @@ Global {69A2C77D-6DB7-4AE4-B179-D1F5CF5E2DF0} = {43091528-9509-43CB-A003-9C5C11E96DD6} {D789AEDB-EBDF-4450-8E8E-B4A03FB257B0} = {43091528-9509-43CB-A003-9C5C11E96DD6} {0C81FC1C-5D2D-478A-9876-923A0C85EC2F} = {43091528-9509-43CB-A003-9C5C11E96DD6} + {86D93406-412A-4429-93B2-92AAD0407784} = {43091528-9509-43CB-A003-9C5C11E96DD6} + {6178B545-4BB6-458C-A27C-EE11F3885D38} = {43091528-9509-43CB-A003-9C5C11E96DD6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {7CA41ED3-2CED-40CC-AA21-28C3B42B1E86} diff --git a/demo/Semi.Avalonia.Demo.Android/MainActivity.cs b/demo/Semi.Avalonia.Demo.Android/MainActivity.cs index 7906c4f..03b691f 100644 --- a/demo/Semi.Avalonia.Demo.Android/MainActivity.cs +++ b/demo/Semi.Avalonia.Demo.Android/MainActivity.cs @@ -4,9 +4,13 @@ using Avalonia.Android; namespace Semi.Avalonia.Demo.Android; -[Activity(Label = "Semi.Avalonia.Demo.Android", Icon = "@drawable/Icon", Theme = "@style/MyTheme.NoActionBar", - LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize)] -public class MainActivity : AvaloniaMainActivity +[Activity( + Label = "Semi.Avalonia", + Theme = "@style/MyTheme.NoActionBar", + Icon = "@drawable/Icon", + MainLauncher = true, + LaunchMode = LaunchMode.SingleTop, + ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)] +public class MainActivity : AvaloniaMainActivity { - } \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Android/SplashActivity.cs b/demo/Semi.Avalonia.Demo.Android/SplashActivity.cs deleted file mode 100644 index 3186324..0000000 --- a/demo/Semi.Avalonia.Demo.Android/SplashActivity.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Android.App; -using Android.Content; -using Avalonia; -using Avalonia.Android; -using Application = Android.App.Application; - -namespace Semi.Avalonia.Demo.Android; - -[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)] -public class SplashActivity: AvaloniaMainActivity -{ - protected override AppBuilder CustomizeAppBuilder(AppBuilder builder) - { - return base.CustomizeAppBuilder(builder); - } - - protected override void OnResume() - { - base.OnResume(); - StartActivity(new Intent(Application.Context, typeof(MainActivity))); - } -} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Android/Views/MainView.axaml b/demo/Semi.Avalonia.Demo.Android/Views/MainView.axaml deleted file mode 100644 index 250500b..0000000 --- a/demo/Semi.Avalonia.Demo.Android/Views/MainView.axaml +++ /dev/null @@ -1,11 +0,0 @@ - - Welcome to Avalonia! - diff --git a/demo/Semi.Avalonia.Demo.Desktop/App.axaml b/demo/Semi.Avalonia.Demo.Desktop/App.axaml deleted file mode 100644 index c12b782..0000000 --- a/demo/Semi.Avalonia.Demo.Desktop/App.axaml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Desktop/Program.cs b/demo/Semi.Avalonia.Demo.Desktop/Program.cs index d42b109..e011c45 100644 --- a/demo/Semi.Avalonia.Demo.Desktop/Program.cs +++ b/demo/Semi.Avalonia.Demo.Desktop/Program.cs @@ -1,7 +1,9 @@ -using System; -using Avalonia; +using Avalonia; using Avalonia.Dialogs; using Avalonia.Media; +using System; +using System.Linq; +using System.Threading; namespace Semi.Avalonia.Demo.Desktop; diff --git a/demo/Semi.Avalonia.Demo.Drm/Program.cs b/demo/Semi.Avalonia.Demo.Drm/Program.cs new file mode 100644 index 0000000..45d2f66 --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/Program.cs @@ -0,0 +1,59 @@ +using Avalonia; +using Avalonia.Dialogs; +using Avalonia.Media; +using System; +using System.Linq; +using System.Threading; + +namespace Semi.Avalonia.Demo.Drm +{ + internal class Program + { + // Initialization code. Don't use any Avalonia, third-party APIs or any + // SynchronizationContext-reliant code before AppMain is called: things aren't initialized + // yet and stuff might break. + [STAThread] + public static void Main(string[] args) + { + var builder = BuildAvaloniaApp(); + builder.With(new FontManagerOptions + { + FontFallbacks = new[] + { + new FontFallback + { + FontFamily = new FontFamily("Microsoft YaHei") + } + } + }); + if (args.Contains("--drm")) + { + SilenceConsole(); + builder.StartLinuxDrm(args: args, card: "/dev/dri/card0", scaling: 1); + } + else + { + builder.StartWithClassicDesktopLifetime(args); + } + } + + // Avalonia configuration, don't remove; also used by visual designer. + public static AppBuilder BuildAvaloniaApp() + => AppBuilder.Configure() + .UseManagedSystemDialogs() + .UsePlatformDetect() + .With(new Win32PlatformOptions()) + .LogToTrace(); + + private static void SilenceConsole() + { + new Thread(() => + { + Console.CursorVisible = false; + while (true) + Console.ReadKey(true); + }) + { IsBackground = true }.Start(); + } + } +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj b/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj new file mode 100644 index 0000000..7accf7a --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/Semi.Avalonia.Demo.Drm.csproj @@ -0,0 +1,22 @@ + + + WinExe + net7.0 + enable + true + app.manifest + + + + + + + + + + + + + + + diff --git a/demo/Semi.Avalonia.Demo.Drm/app.manifest b/demo/Semi.Avalonia.Demo.Drm/app.manifest new file mode 100644 index 0000000..938919a --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/app.manifest @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + diff --git a/demo/Semi.Avalonia.Demo.Drm/使用方法.md b/demo/Semi.Avalonia.Demo.Drm/使用方法.md new file mode 100644 index 0000000..efe659a --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Drm/使用方法.md @@ -0,0 +1,51 @@ +# DRM启动步骤 + +(Ubuntu18.04Server版本 虚拟机测试OK) + +Avalonia官方参考文档:https://docs.avaloniaui.net/docs/next/guides/platforms/rpi/running-on-raspbian-lite-via-drm + +1.Linux端运行命令 + sudo apt update + sudo apt upgrade + sudo reboot + sudo apt - get install libgbm1 libgl1 - mesa - dri libegl1 - mesa libinput10 + +2.安装测试工具测试(出现一个彩色立方体说明环境安装完成) + sudo apt-get install kmscube + sudo kmscube + +3.安装.net运行时(参考网址:https://learn.microsoft.com/zh-cn/dotnet/core/install/linux?WT.mc_id=dotnet-35129-website) + +4.新建一个Avalonia项目,nuget里面添加Avalonia.LinuxFramebuffer包 + +5.添加StartLinuxDrm代码(不知道怎么添加看Semi.Avalonia.Demo.Drm项目代码) + +6.发布程序到Linux(安装.net,怎么运行这些省略) + +7.运行 ./Semi.Avalonia.Demo.Drm --drm + +## 报错处理: + +1. 报错内容 + +>Unhandled exception. Avalonia.Markup.Xaml.XamlLoadException: No precompiled XAML found for avares://Semi.Avalonia/Themes/Light/Light.axaml (baseUri: avares://Semi.Avalonia/Themes/Index.axaml), make sure to specify x:Class and include your XAML file as AvaloniaResource + + 解决方法: + 如果使用Semi发布文件不要裁剪,如果裁剪会报错 + + +2. 报错内容 +>Unhandled exception. System.TypeInitializationException: The type initializer for 'SkiaSharp.SKImageInfo' threw an exception.** + **--->System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies.In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibSkiaSharp: cannot open shared object file: No such file or directory + at SkiaSharp.SkiaApi.sk_colortype_get_default_8888() + at SkiaSharp.SKImageInfo..cctor() + +解决方法: + Linux命令行安装一下 apt-get install -y libfontconfig1 + 参考网址:https://github.com/mono/SkiaSharp/issues/509 + +3. 报错内容 +>Permission denied + +解决方法: + sudo chmod +x ./Semi.Avalonia.Demo.Drm \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Web/App.axaml b/demo/Semi.Avalonia.Demo.Web/App.axaml deleted file mode 100644 index fe5d151..0000000 --- a/demo/Semi.Avalonia.Demo.Web/App.axaml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Web/App.axaml.cs b/demo/Semi.Avalonia.Demo.Web/App.axaml.cs deleted file mode 100644 index 5638d50..0000000 --- a/demo/Semi.Avalonia.Demo.Web/App.axaml.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Avalonia; -using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Markup.Xaml; -using Semi.Avalonia.Demo.Views; - -namespace Semi.Avalonia.Demo.Web; - -public partial class App : Application -{ - public override void Initialize() - { - AvaloniaXamlLoader.Load(this); - } - - public override void OnFrameworkInitializationCompleted() - { - if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewPlatform) - { - singleViewPlatform.MainView = new MainView(); - } - base.OnFrameworkInitializationCompleted(); - } -} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Web/AppBundle/app.css b/demo/Semi.Avalonia.Demo.Web/AppBundle/app.css index 027ea8f..a424538 100644 --- a/demo/Semi.Avalonia.Demo.Web/AppBundle/app.css +++ b/demo/Semi.Avalonia.Demo.Web/AppBundle/app.css @@ -1,4 +1,11 @@ -/* HTML styles for the splash screen */ +:root { + --sat: env(safe-area-inset-top); + --sar: env(safe-area-inset-right); + --sab: env(safe-area-inset-bottom); + --sal: env(safe-area-inset-left); +} + +/* HTML styles for the splash screen */ .highlight { color: white; diff --git a/demo/Semi.Avalonia.Demo.Web/AppBundle/index.html b/demo/Semi.Avalonia.Demo.Web/AppBundle/index.html index c90e26c..703ee35 100644 --- a/demo/Semi.Avalonia.Demo.Web/AppBundle/index.html +++ b/demo/Semi.Avalonia.Demo.Web/AppBundle/index.html @@ -10,7 +10,6 @@ - diff --git a/demo/Semi.Avalonia.Demo.Web/AppBundle/main.js b/demo/Semi.Avalonia.Demo.Web/AppBundle/main.js index 2426ede..0dbe2e4 100644 --- a/demo/Semi.Avalonia.Demo.Web/AppBundle/main.js +++ b/demo/Semi.Avalonia.Demo.Web/AppBundle/main.js @@ -1,5 +1,4 @@ import { dotnet } from './dotnet.js' -import { registerAvaloniaModule } from './avalonia.js'; const is_browser = typeof window != "undefined"; if (!is_browser) throw new Error(`Expected to be running in a browser`); @@ -9,8 +8,6 @@ const dotnetRuntime = await dotnet .withApplicationArgumentsFromQuery() .create(); -await registerAvaloniaModule(dotnetRuntime); - const config = dotnetRuntime.getConfig(); await dotnetRuntime.runMainAndExit(config.mainAssemblyName, [window.location.search]); \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Web/Program.cs b/demo/Semi.Avalonia.Demo.Web/Program.cs index 37143f0..17e83a9 100644 --- a/demo/Semi.Avalonia.Demo.Web/Program.cs +++ b/demo/Semi.Avalonia.Demo.Web/Program.cs @@ -1,17 +1,16 @@ using System.Runtime.Versioning; +using System.Threading.Tasks; using Avalonia; -using Avalonia.Media; -using Semi.Avalonia.Demo.Web; using Avalonia.Browser; [assembly: SupportedOSPlatform("browser")] +namespace Semi.Avalonia.Demo.Web; + internal partial class Program { - private static void Main(string[] args) - { - BuildAvaloniaApp(); //.SetupBrowserApp("out"); - } + private static async Task Main(string[] args) => await BuildAvaloniaApp() + .StartBrowserAppAsync("out"); public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure(); diff --git a/demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj b/demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj index 9db7e5b..b169194 100644 --- a/demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj +++ b/demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj @@ -10,20 +10,11 @@ - - - - - - - - - - + diff --git a/demo/Semi.Avalonia.Demo.Android/App.axaml b/demo/Semi.Avalonia.Demo/App.axaml similarity index 69% rename from demo/Semi.Avalonia.Demo.Android/App.axaml rename to demo/Semi.Avalonia.Demo/App.axaml index 6387ef8..07879bb 100644 --- a/demo/Semi.Avalonia.Demo.Android/App.axaml +++ b/demo/Semi.Avalonia.Demo/App.axaml @@ -1,8 +1,7 @@ + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> diff --git a/demo/Semi.Avalonia.Demo.Android/App.axaml.cs b/demo/Semi.Avalonia.Demo/App.axaml.cs similarity index 53% rename from demo/Semi.Avalonia.Demo.Android/App.axaml.cs rename to demo/Semi.Avalonia.Demo/App.axaml.cs index e68f7de..399c279 100644 --- a/demo/Semi.Avalonia.Demo.Android/App.axaml.cs +++ b/demo/Semi.Avalonia.Demo/App.axaml.cs @@ -1,10 +1,9 @@ using Avalonia; -using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using Semi.Avalonia.Demo.Views; -namespace Semi.Avalonia.Demo.Android; +namespace Semi.Avalonia.Demo; public partial class App : Application { @@ -15,13 +14,16 @@ public partial class App : Application public override void OnFrameworkInitializationCompleted() { - if (ApplicationLifetime is ISingleViewApplicationLifetime single) + switch (ApplicationLifetime) { - single.MainView = new MainView() - { - - }; + case IClassicDesktopStyleApplicationLifetime desktop: + desktop.MainWindow = new MainWindow(); + break; + case ISingleViewApplicationLifetime singleView: + singleView.MainView = new MainView(); + break; } + base.OnFrameworkInitializationCompleted(); } } \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/Pages/ButtonSpinnerDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/ButtonSpinnerDemo.axaml index 44d5cc6..4aa5cd0 100644 --- a/demo/Semi.Avalonia.Demo/Pages/ButtonSpinnerDemo.axaml +++ b/demo/Semi.Avalonia.Demo/Pages/ButtonSpinnerDemo.axaml @@ -17,8 +17,7 @@ + Text="A.S.I.A" /> + Text="A.S.I.A" /> diff --git a/demo/Semi.Avalonia.Demo/Pages/ButtonSpinnerDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/ButtonSpinnerDemo.axaml.cs index a6e8f51..f562d3e 100644 --- a/demo/Semi.Avalonia.Demo/Pages/ButtonSpinnerDemo.axaml.cs +++ b/demo/Semi.Avalonia.Demo/Pages/ButtonSpinnerDemo.axaml.cs @@ -36,15 +36,20 @@ public partial class ButtonSpinnerDemo : UserControl private readonly string[] _mountains = new[] { - "Everest", - "K2 (Mount Godwin Austen)", - "Kangchenjunga", - "Lhotse", - "Makalu", - "Cho Oyu", - "Dhaulagiri", - "Manaslu", - "Nanga Parbat", - "Annapurna" + "A.S.I.A", + "饕餮人间", + "七步咙咚呛", + "大惊小怪", + "The ONE", + "以梦为马 (壮志骄阳版)", + "emo了", + "一眼万年", + "冲刺吧", + "爱的赏味期限", + "COSMIC ANTHEM / 手紙", + "世界晚安", + "明年也要好好长大", + "320万年前", + "W.O.R.L.D.", }; } \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/Pages/CheckBoxDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/CheckBoxDemo.axaml index 204599d..9932a0e 100644 --- a/demo/Semi.Avalonia.Demo/Pages/CheckBoxDemo.axaml +++ b/demo/Semi.Avalonia.Demo/Pages/CheckBoxDemo.axaml @@ -47,126 +47,79 @@ IsThreeState="True" Theme="{StaticResource SimpleCheckBox}" /> - + - - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - + + + - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - + Theme="{DynamicResource CardCheckBox}" /> + + - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - + Theme="{DynamicResource CardCheckBox}" /> + + + + + + - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - + Content="Windows" + IsChecked="True" + Theme="{DynamicResource PureCardCheckBox}" /> - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - + Theme="{DynamicResource PureCardCheckBox}" /> - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - - - - - - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - - - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - + Theme="{DynamicResource PureCardCheckBox}" /> - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - - - + Theme="{DynamicResource PureCardCheckBox}" /> - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - - - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - - - - 复选框标题 - Semi Design 是由互娱社区前端团队与 UED 团队共同设计开发并维护的设计系统 - - + Theme="{DynamicResource PureCardCheckBox}" /> + diff --git a/demo/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml index c73cc17..6fccb90 100644 --- a/demo/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml +++ b/demo/Semi.Avalonia.Demo/Pages/ComboBoxDemo.axaml @@ -9,45 +9,59 @@ mc:Ignorable="d"> - AAA - BBB - CCC + Ding + Otter + Husky + Mr. 17 + Cass - AAA - BBB - CCC + Ding + Otter + Husky + Mr. 17 + Cass - AAA - BBB - CCC + Ding + Otter + Husky + Mr. 17 + Cass - AAA - BBB - CCC + Ding + Otter + Husky + Mr. 17 + Cass - AAA - BBB - CCC + Ding + Otter + Husky + Mr. 17 + Cass - AAA - BBB - CCC + Ding + Otter + Husky + Mr. 17 + Cass - AAA - BBB - CCC + Ding + Otter + Husky + Mr. 17 + Cass diff --git a/demo/Semi.Avalonia.Demo/Pages/DataGridDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/DataGridDemo.axaml index 44729f3..5a36e71 100644 --- a/demo/Semi.Avalonia.Demo/Pages/DataGridDemo.axaml +++ b/demo/Semi.Avalonia.Demo/Pages/DataGridDemo.axaml @@ -5,122 +5,95 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="using:Semi.Avalonia.Demo.Pages" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:vm="clr-namespace:Semi.Avalonia.Demo.ViewModels;assembly=Semi.Avalonia.Demo" d:DesignHeight="450" d:DesignWidth="800" + x:CompileBindings="True" + x:DataType="vm:DataGridDemoViewModel" mc:Ignorable="d"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + x:DataType="vm:Song" + Binding="{Binding Title}" + Header="Title" /> + Width="6*" + x:DataType="vm:Song" + Binding="{Binding Artist}" + Header="Artist" /> - - + Width="6*" + x:DataType="vm:Song" + Binding="{Binding Album}" + Header="Album" /> + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + - + Margin="8" + ItemsSource="{Binding GridData3}"> - - - + + + + + Text="{Binding CountOfComment}" /> @@ -174,17 +151,14 @@ + Value="{Binding CountOfComment}" />