From c94dfb2948a7c71008cab984c0fd43722d331ccf Mon Sep 17 00:00:00 2001 From: rabbitism Date: Wed, 25 Jan 2023 22:54:16 +0800 Subject: [PATCH 1/3] feat: Add GridSplitter --- .../Pages/GridSplitter.axaml | 42 +++++++++++++++++++ .../Pages/GridSplitter.axaml.cs | 18 ++++++++ demo/Semi.Avalonia.Demo/Views/MainView.axaml | 3 ++ src/Semi.Avalonia/Controls/Controls.axaml | 1 + src/Semi.Avalonia/Controls/GridSplitter.axaml | 25 +++++++++++ .../Themes/Light/GridSplitter.axaml | 5 +++ src/Semi.Avalonia/Themes/Light/Light.axaml | 1 + 7 files changed, 95 insertions(+) create mode 100644 demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml create mode 100644 demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml.cs create mode 100644 src/Semi.Avalonia/Controls/GridSplitter.axaml create mode 100644 src/Semi.Avalonia/Themes/Light/GridSplitter.axaml diff --git a/demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml b/demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml new file mode 100644 index 0000000..0928a67 --- /dev/null +++ b/demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + diff --git a/demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml.cs new file mode 100644 index 0000000..c317cf5 --- /dev/null +++ b/demo/Semi.Avalonia.Demo/Pages/GridSplitter.axaml.cs @@ -0,0 +1,18 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace Semi.Avalonia.Demo.Pages; + +public partial class GridSplitter : UserControl +{ + public GridSplitter() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/Views/MainView.axaml b/demo/Semi.Avalonia.Demo/Views/MainView.axaml index 447aba2..e0db770 100644 --- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml +++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml @@ -39,6 +39,9 @@ + + + diff --git a/src/Semi.Avalonia/Controls/Controls.axaml b/src/Semi.Avalonia/Controls/Controls.axaml index 8f0c1f1..8df5e08 100644 --- a/src/Semi.Avalonia/Controls/Controls.axaml +++ b/src/Semi.Avalonia/Controls/Controls.axaml @@ -11,6 +11,7 @@ + diff --git a/src/Semi.Avalonia/Controls/GridSplitter.axaml b/src/Semi.Avalonia/Controls/GridSplitter.axaml new file mode 100644 index 0000000..cce4704 --- /dev/null +++ b/src/Semi.Avalonia/Controls/GridSplitter.axaml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia/Themes/Light/GridSplitter.axaml b/src/Semi.Avalonia/Themes/Light/GridSplitter.axaml new file mode 100644 index 0000000..d422063 --- /dev/null +++ b/src/Semi.Avalonia/Themes/Light/GridSplitter.axaml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/Semi.Avalonia/Themes/Light/Light.axaml b/src/Semi.Avalonia/Themes/Light/Light.axaml index 176a422..ba61480 100644 --- a/src/Semi.Avalonia/Themes/Light/Light.axaml +++ b/src/Semi.Avalonia/Themes/Light/Light.axaml @@ -9,6 +9,7 @@ + From 9934ea791e209a7c7fdaec0fd1fbc67865527c8e Mon Sep 17 00:00:00 2001 From: rabbitism Date: Wed, 25 Jan 2023 23:52:50 +0800 Subject: [PATCH 2/3] feat: add carousel, popup host, selectable textblock flyout, tabstrip, transitioning content control. --- .../Pages/CarouselDemo.axaml | 37 ++++++ .../Pages/CarouselDemo.axaml.cs | 26 ++++ .../Pages/TabControlDemo.axaml | 30 +++-- demo/Semi.Avalonia.Demo/Views/MainView.axaml | 3 + src/Semi.Avalonia/Controls/Carousel.axaml | 22 ++++ src/Semi.Avalonia/Controls/Controls.axaml | 3 + src/Semi.Avalonia/Controls/Popup.axaml | 17 +++ .../Controls/SelectableTextBlock.axaml | 14 +++ src/Semi.Avalonia/Controls/TabItem.axaml | 21 ++-- src/Semi.Avalonia/Controls/TabStrip.axaml | 111 ++++++++++++++++++ .../TransitioningContentControl.axaml | 19 +++ 11 files changed, 284 insertions(+), 19 deletions(-) create mode 100644 demo/Semi.Avalonia.Demo/Pages/CarouselDemo.axaml create mode 100644 demo/Semi.Avalonia.Demo/Pages/CarouselDemo.axaml.cs create mode 100644 src/Semi.Avalonia/Controls/Carousel.axaml create mode 100644 src/Semi.Avalonia/Controls/TabStrip.axaml create mode 100644 src/Semi.Avalonia/Controls/TransitioningContentControl.axaml diff --git a/demo/Semi.Avalonia.Demo/Pages/CarouselDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/CarouselDemo.axaml new file mode 100644 index 0000000..0388518 --- /dev/null +++ b/demo/Semi.Avalonia.Demo/Pages/CarouselDemo.axaml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/demo/Semi.Avalonia.Demo/Pages/CarouselDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/CarouselDemo.axaml.cs new file mode 100644 index 0000000..1f96477 --- /dev/null +++ b/demo/Semi.Avalonia.Demo/Pages/CarouselDemo.axaml.cs @@ -0,0 +1,26 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Interactivity; +using Avalonia.Markup.Xaml; + +namespace Semi.Avalonia.Demo.Pages; + +public partial class CarouselDemo : UserControl +{ + public CarouselDemo() + { + InitializeComponent(); + Previous.Click += OnPreviousClick; + Next.Click += OnNextClick; + } + + private void OnPreviousClick(object sender, RoutedEventArgs args) + { + carousel.Previous(); + } + + private void OnNextClick(object sender, RoutedEventArgs args) + { + carousel.Next(); + } +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/Pages/TabControlDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/TabControlDemo.axaml index 569c522..7b2fde7 100644 --- a/demo/Semi.Avalonia.Demo/Pages/TabControlDemo.axaml +++ b/demo/Semi.Avalonia.Demo/Pages/TabControlDemo.axaml @@ -1,8 +1,12 @@ + x:Class="Semi.Avalonia.Demo.Pages.TabControlDemo" + xmlns="https://github.com/avaloniaui" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + d:DesignHeight="450" + d:DesignWidth="800" + mc:Ignorable="d"> @@ -11,7 +15,8 @@ @@ -22,7 +27,8 @@ @@ -33,7 +39,8 @@ @@ -44,9 +51,16 @@ + + + Tab 1 + Tab 2 + + diff --git a/demo/Semi.Avalonia.Demo/Views/MainView.axaml b/demo/Semi.Avalonia.Demo/Views/MainView.axaml index e0db770..4936ae5 100644 --- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml +++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml @@ -27,6 +27,9 @@ + + + diff --git a/src/Semi.Avalonia/Controls/Carousel.axaml b/src/Semi.Avalonia/Controls/Carousel.axaml new file mode 100644 index 0000000..7ea121b --- /dev/null +++ b/src/Semi.Avalonia/Controls/Carousel.axaml @@ -0,0 +1,22 @@ + + + + + + + + + + + + diff --git a/src/Semi.Avalonia/Controls/Controls.axaml b/src/Semi.Avalonia/Controls/Controls.axaml index 8df5e08..f0f76bc 100644 --- a/src/Semi.Avalonia/Controls/Controls.axaml +++ b/src/Semi.Avalonia/Controls/Controls.axaml @@ -5,6 +5,7 @@ + @@ -29,11 +30,13 @@ + + diff --git a/src/Semi.Avalonia/Controls/Popup.axaml b/src/Semi.Avalonia/Controls/Popup.axaml index c643e4a..60d461f 100644 --- a/src/Semi.Avalonia/Controls/Popup.axaml +++ b/src/Semi.Avalonia/Controls/Popup.axaml @@ -20,4 +20,21 @@ + + + + + + + + + + + + diff --git a/src/Semi.Avalonia/Controls/SelectableTextBlock.axaml b/src/Semi.Avalonia/Controls/SelectableTextBlock.axaml index e548da5..9cca943 100644 --- a/src/Semi.Avalonia/Controls/SelectableTextBlock.axaml +++ b/src/Semi.Avalonia/Controls/SelectableTextBlock.axaml @@ -1,4 +1,14 @@ + + + + + @@ -34,6 +44,10 @@ + - - - - @@ -99,7 +98,7 @@ - @@ -122,7 +121,7 @@ - diff --git a/src/Semi.Avalonia/Controls/TabStrip.axaml b/src/Semi.Avalonia/Controls/TabStrip.axaml new file mode 100644 index 0000000..5e73f96 --- /dev/null +++ b/src/Semi.Avalonia/Controls/TabStrip.axaml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia/Controls/TransitioningContentControl.axaml b/src/Semi.Avalonia/Controls/TransitioningContentControl.axaml new file mode 100644 index 0000000..ef9e87f --- /dev/null +++ b/src/Semi.Avalonia/Controls/TransitioningContentControl.axaml @@ -0,0 +1,19 @@ + + + + + + + + + From 4e74d1ab901e722913dd6f8f7fd68538d45b9072 Mon Sep 17 00:00:00 2001 From: rabbitism Date: Thu, 26 Jan 2023 00:02:54 +0800 Subject: [PATCH 3/3] fix: fix MenuFlyout default text style. --- src/Semi.Avalonia/Controls/MenuFlyoutPresenter.axaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Semi.Avalonia/Controls/MenuFlyoutPresenter.axaml b/src/Semi.Avalonia/Controls/MenuFlyoutPresenter.axaml index 368107f..887c2a1 100644 --- a/src/Semi.Avalonia/Controls/MenuFlyoutPresenter.axaml +++ b/src/Semi.Avalonia/Controls/MenuFlyoutPresenter.axaml @@ -5,6 +5,9 @@ + + +