diff --git a/demo/Directory.Build.props b/demo/Directory.Build.props
index 74d63f7..d2ed3f4 100644
--- a/demo/Directory.Build.props
+++ b/demo/Directory.Build.props
@@ -1,6 +1,6 @@
enable
- 11.0.7
+ 11.1.0-beta1
diff --git a/demo/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml
index 38f3e87..37633c3 100644
--- a/demo/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml
@@ -70,5 +70,16 @@
+
+
+
+
+
+
+
diff --git a/demo/Semi.Avalonia.Demo/Pages/HyperlinkButtonDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/HyperlinkButtonDemo.axaml
new file mode 100644
index 0000000..897a75b
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo/Pages/HyperlinkButtonDemo.axaml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/demo/Semi.Avalonia.Demo/Pages/HyperlinkButtonDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/HyperlinkButtonDemo.axaml.cs
new file mode 100644
index 0000000..ad93fd0
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo/Pages/HyperlinkButtonDemo.axaml.cs
@@ -0,0 +1,14 @@
+using System;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace Semi.Avalonia.Demo.Pages;
+
+public partial class HyperlinkButtonDemo : UserControl
+{
+ public HyperlinkButtonDemo()
+ {
+ InitializeComponent();
+ }
+}
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Pages/NumericUpDownDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/NumericUpDownDemo.axaml
index 9e70dce..54729d7 100644
--- a/demo/Semi.Avalonia.Demo/Pages/NumericUpDownDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/NumericUpDownDemo.axaml
@@ -37,5 +37,11 @@
Classes="Small"
Maximum="100"
Minimum="0" />
+
diff --git a/demo/Semi.Avalonia.Demo/Pages/RefreshContainerDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/RefreshContainerDemo.axaml
index de3762c..4bb484e 100644
--- a/demo/Semi.Avalonia.Demo/Pages/RefreshContainerDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/RefreshContainerDemo.axaml
@@ -4,12 +4,24 @@
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"
+ xmlns:pages="clr-namespace:Semi.Avalonia.Demo.Pages"
d:DesignHeight="450"
d:DesignWidth="800"
+ x:DataType="pages:RefreshContainerDemoViewModel"
+ x:CompileBindings="True"
mc:Ignorable="d">
-
-
-
+
+
+
+
-
+
diff --git a/demo/Semi.Avalonia.Demo/Pages/RefreshContainerDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/RefreshContainerDemo.axaml.cs
index 0add79b..7e13123 100644
--- a/demo/Semi.Avalonia.Demo/Pages/RefreshContainerDemo.axaml.cs
+++ b/demo/Semi.Avalonia.Demo/Pages/RefreshContainerDemo.axaml.cs
@@ -1,14 +1,46 @@
-using Avalonia;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Threading.Tasks;
using Avalonia.Controls;
-using Avalonia.Interactivity;
-using Avalonia.Markup.Xaml;
+using CommunityToolkit.Mvvm.ComponentModel;
namespace Semi.Avalonia.Demo.Pages;
public partial class RefreshContainerDemo : UserControl
{
+ private RefreshContainerDemoViewModel _viewModel;
+
public RefreshContainerDemo()
{
InitializeComponent();
+
+ _viewModel = new RefreshContainerDemoViewModel();
+
+ DataContext = _viewModel;
+ }
+
+ private async void RefreshContainerPage_RefreshRequested(object? sender, RefreshRequestedEventArgs e)
+ {
+ var deferral = e.GetDeferral();
+
+ await _viewModel.AddToTop();
+
+ deferral.Complete();
+ }
+}
+
+public class RefreshContainerDemoViewModel : ObservableObject
+{
+ public ObservableCollection Items { get; }
+
+ public RefreshContainerDemoViewModel()
+ {
+ Items = new ObservableCollection(Enumerable.Range(1, 200).Select(i => $"Item {i}"));
+ }
+
+ public async Task AddToTop()
+ {
+ await Task.Delay(1000);
+ Items.Insert(0, $"Item {200 - Items.Count}");
}
}
\ 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 0b40a59..9979101 100644
--- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml
+++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml
@@ -1,13 +1,13 @@
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
@@ -21,52 +21,52 @@
Margin="8"
Padding="12,4"
Theme="{DynamicResource CardBorder}">
-
+
+ Theme="{DynamicResource TitleTextBlock}"
+ VerticalAlignment="Center" />
+ Text="/"
+ VerticalAlignment="Center" />
+ Margin="8,0"
+ Text="{Binding #tab.SelectedItem.Header}"
+ VerticalAlignment="Center" />
+ Foreground="{DynamicResource ButtonDefaultTertiaryForeground}"
+ Height="16"
+ Width="16" />
+ Foreground="{DynamicResource ButtonDefaultTertiaryForeground}"
+ Height="16"
+ Width="16" />
@@ -126,6 +126,9 @@
+
+
+
@@ -145,7 +148,7 @@
-
+
diff --git a/src/Package.props b/src/Package.props
index 3ad4e31..d41c3a6 100644
--- a/src/Package.props
+++ b/src/Package.props
@@ -7,7 +7,7 @@
IRIHI Technology
Avalonia Theme inspired by Semi Design.
https://github.com/irihitech/Semi.Avalonia
- 11.0.7
+ 11.1.0-beta1
MIT
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Controls/AutoCompleteBox.axaml b/src/Semi.Avalonia/Controls/AutoCompleteBox.axaml
index 4270c1a..216f539 100644
--- a/src/Semi.Avalonia/Controls/AutoCompleteBox.axaml
+++ b/src/Semi.Avalonia/Controls/AutoCompleteBox.axaml
@@ -19,6 +19,8 @@
VerticalAlignment="Center"
DataValidationErrors.Errors="{TemplateBinding (DataValidationErrors.Errors)}"
Theme="{DynamicResource NonErrorTextBox}"
+ InnerLeftContent="{TemplateBinding InnerLeftContent}"
+ InnerRightContent="{TemplateBinding InnerRightContent}"
Watermark="{TemplateBinding Watermark}" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Controls/NumericUpDown.axaml b/src/Semi.Avalonia/Controls/NumericUpDown.axaml
index fe4fc2d..f1bbca3 100644
--- a/src/Semi.Avalonia/Controls/NumericUpDown.axaml
+++ b/src/Semi.Avalonia/Controls/NumericUpDown.axaml
@@ -35,6 +35,8 @@
Text="{TemplateBinding Text}"
TextWrapping="NoWrap"
Theme="{DynamicResource NonErrorTextBox}"
+ InnerLeftContent="{TemplateBinding InnerLeftContent}"
+ InnerRightContent="{TemplateBinding InnerRightContent}"
Watermark="{TemplateBinding Watermark}" />
diff --git a/src/Semi.Avalonia/Controls/RefreshContainer.axaml b/src/Semi.Avalonia/Controls/RefreshContainer.axaml
index 238c078..48497c7 100644
--- a/src/Semi.Avalonia/Controls/RefreshContainer.axaml
+++ b/src/Semi.Avalonia/Controls/RefreshContainer.axaml
@@ -28,21 +28,27 @@
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
-
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Controls/TextBox.axaml b/src/Semi.Avalonia/Controls/TextBox.axaml
index 6547f29..eb97633 100644
--- a/src/Semi.Avalonia/Controls/TextBox.axaml
+++ b/src/Semi.Avalonia/Controls/TextBox.axaml
@@ -269,7 +269,7 @@
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}">
-
+
+
diff --git a/src/Semi.Avalonia/Controls/_index.axaml b/src/Semi.Avalonia/Controls/_index.axaml
index e8f6631..7858a19 100644
--- a/src/Semi.Avalonia/Controls/_index.axaml
+++ b/src/Semi.Avalonia/Controls/_index.axaml
@@ -1,7 +1,7 @@
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
@@ -24,6 +24,7 @@
+
diff --git a/src/Semi.Avalonia/Themes/Dark/HyperlinkButton.axaml b/src/Semi.Avalonia/Themes/Dark/HyperlinkButton.axaml
new file mode 100644
index 0000000..f49e412
--- /dev/null
+++ b/src/Semi.Avalonia/Themes/Dark/HyperlinkButton.axaml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/Semi.Avalonia/Themes/Dark/RefreshContainer.axaml b/src/Semi.Avalonia/Themes/Dark/RefreshContainer.axaml
index 9be9ad3..a77eb29 100644
--- a/src/Semi.Avalonia/Themes/Dark/RefreshContainer.axaml
+++ b/src/Semi.Avalonia/Themes/Dark/RefreshContainer.axaml
@@ -1,4 +1,4 @@
-
-
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/Dark/_index.axaml b/src/Semi.Avalonia/Themes/Dark/_index.axaml
index 5b328e6..0d83083 100644
--- a/src/Semi.Avalonia/Themes/Dark/_index.axaml
+++ b/src/Semi.Avalonia/Themes/Dark/_index.axaml
@@ -20,6 +20,7 @@
+
diff --git a/src/Semi.Avalonia/Themes/Light/HyperlinkButton.axaml b/src/Semi.Avalonia/Themes/Light/HyperlinkButton.axaml
new file mode 100644
index 0000000..f6ab0be
--- /dev/null
+++ b/src/Semi.Avalonia/Themes/Light/HyperlinkButton.axaml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/Semi.Avalonia/Themes/Light/RefreshContainer.axaml b/src/Semi.Avalonia/Themes/Light/RefreshContainer.axaml
index 397a7bb..e67b05b 100644
--- a/src/Semi.Avalonia/Themes/Light/RefreshContainer.axaml
+++ b/src/Semi.Avalonia/Themes/Light/RefreshContainer.axaml
@@ -1,4 +1,4 @@
-
-
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/Light/_index.axaml b/src/Semi.Avalonia/Themes/Light/_index.axaml
index 3baba8f..1e8c679 100644
--- a/src/Semi.Avalonia/Themes/Light/_index.axaml
+++ b/src/Semi.Avalonia/Themes/Light/_index.axaml
@@ -20,6 +20,7 @@
+
diff --git a/src/Semi.Avalonia/Themes/Shared/HyperlinkButton.axaml b/src/Semi.Avalonia/Themes/Shared/HyperlinkButton.axaml
new file mode 100644
index 0000000..1119ef0
--- /dev/null
+++ b/src/Semi.Avalonia/Themes/Shared/HyperlinkButton.axaml
@@ -0,0 +1,9 @@
+
+ 14
+ 12
+ 12
+ 12
+ 12
+
+ M 12.9393 2.9393 C 15.182 0.69666 18.818 0.696668 21.0606 2.93931 C 23.3033 5.18195 23.3033 8.81799 21.0606 11.0606 L 18.3925 13.7288 C 18.4631 13.3298 18.5 12.9192 18.5 12.5 C 18.5 11.5751 18.3206 10.6921 17.9947 9.88386 L 18.9393 8.93931 C 20.0104 7.86824 20.0104 6.13169 18.9393 5.06063 C 17.8682 3.98956 16.1317 3.98956 15.0606 5.06062 L 11.0606 9.06063 C 9.98956 10.1317 9.98956 11.8682 11.0606 12.9393 C 11.3265 13.2052 11.6335 13.4051 11.961 13.539 L 9.75848 15.7415 C 9.47 15.5439 9.19556 15.3169 8.9393 15.0606 C 6.69666 12.818 6.69666 9.18195 8.9393 6.93931 L 12.9393 2.9393 Z M 2.9393 12.9393 L 5.60751 10.2711 C 5.53685 10.6701 5.49999 11.0808 5.49999 11.5001 C 5.49999 12.4249 5.67935 13.3079 6.00519 14.1161 L 5.06062 15.0607 C 3.98956 16.1317 3.98956 17.8683 5.06063 18.9393 C 6.13169 20.0104 7.86824 20.0104 8.9393 18.9393 L 12.9393 14.9393 C 14.0104 13.8683 14.0104 12.1317 12.9393 11.0607 C 12.7664 10.8878 12.5762 10.7428 12.3743 10.6258 L 14.5302 8.46985 C 14.7141 8.61357 14.8914 8.77007 15.0606 8.93934 C 17.3033 11.182 17.3033 14.818 15.0606 17.0607 L 11.0606 21.0607 C 8.81798 23.3033 5.18194 23.3033 2.9393 21.0607 C 0.696665 18.818 0.696663 15.182 2.9393 12.9393 Z
+
diff --git a/src/Semi.Avalonia/Themes/Shared/RefreshContainer.axaml b/src/Semi.Avalonia/Themes/Shared/RefreshContainer.axaml
index 9a5161c..e41e85f 100644
--- a/src/Semi.Avalonia/Themes/Shared/RefreshContainer.axaml
+++ b/src/Semi.Avalonia/Themes/Shared/RefreshContainer.axaml
@@ -1,3 +1,3 @@
- M14.2 3.78966C9.66551 2.57466 5.00465 5.26561 3.78964 9.80007C3.12066 12.2967 3.63433 14.8301 4.99177 16.8102C5.46019 17.4935 5.28601 18.4271 4.60273 18.8955C3.91945 19.364 2.98581 19.1898 2.51739 18.5065C0.685557 15.8344 -0.0134454 12.4023 0.891867 9.02361C2.5357 2.88875 8.84157 -0.751945 14.9764 0.891885C21.1113 2.53572 24.752 8.84159 23.1082 14.9765C22.8937 15.7767 22.0712 16.2515 21.271 16.0371C20.4708 15.8227 19.996 15.0002 20.2104 14.2C21.4254 9.66553 18.7344 5.00467 14.2 3.78966Z
+ 24
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/Shared/_index.axaml b/src/Semi.Avalonia/Themes/Shared/_index.axaml
index 249105f..d01988a 100644
--- a/src/Semi.Avalonia/Themes/Shared/_index.axaml
+++ b/src/Semi.Avalonia/Themes/Shared/_index.axaml
@@ -20,6 +20,7 @@
+