From e7e2516c07f46cd17e4d2299b4f7e78cd92d9267 Mon Sep 17 00:00:00 2001 From: Evgeny Gorbovoy Date: Tue, 26 Jul 2022 13:43:39 +0200 Subject: [PATCH 01/12] Scene hittest now uses exclusive `Rect.Contains`. Fixes https://github.com/AvaloniaUI/Avalonia/issues/3079 --- src/Avalonia.Base/Rendering/SceneGraph/Scene.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Base/Rendering/SceneGraph/Scene.cs b/src/Avalonia.Base/Rendering/SceneGraph/Scene.cs index 20c23d7bee..c436299018 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/Scene.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/Scene.cs @@ -300,7 +300,7 @@ namespace Avalonia.Rendering.SceneGraph if (node.ClipToBounds) { clip = clip == null ? node.ClipBounds : clip.Value.Intersect(node.ClipBounds); - clipped = !clip.Value.Contains(_point); + clipped = !clip.Value.ContainsExclusive(_point); } if (node.GeometryClip != null) From 01d040bf6ca6043fb42fcc6cecb04ea176df3819 Mon Sep 17 00:00:00 2001 From: Evgeny Gorbovoy Date: Wed, 27 Jul 2022 23:25:43 +0200 Subject: [PATCH 02/12] + hit test attempt --- .../DeferredRendererTests_HitTesting.cs | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs index 33c7b3e0f8..e1b36c9d72 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs @@ -537,6 +537,37 @@ namespace Avalonia.Base.UnitTests.Rendering } } + [Fact] + public void HitTest_Should_Not_Hit_Controls_Next_Pixel() + { + using (TestApplication()) + { + Button targetButton; + + var root = new TestRoot + { + Width = 300, + Height = 200, + Child = new StackPanel + { + Orientation = Orientation.Vertical, + Children = + { + new Button { Width = 10, Height = 10 }, + { targetButton = new Button { Width = 10, Height = 10 } } + } + } + }; + + root.Renderer = new DeferredRenderer(root, null); + root.Measure(Size.Infinity); + root.Arrange(new Rect(root.DesiredSize)); + + var result = root.Renderer.HitTest(new Point(5, 10), root, null); + Assert.Equal(new[] { targetButton }, result); + } + } + private IDisposable TestApplication() { return UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); From d560fd28473df11cfe0824419cbf32bfb6f3ee88 Mon Sep 17 00:00:00 2001 From: Evgeny Gorbovoy Date: Wed, 27 Jul 2022 23:28:34 +0200 Subject: [PATCH 03/12] + CompositorHitTesting test --- .../Rendering/CompositorHitTestingTests.cs | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs index 705c8fad9c..6543649eb2 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs @@ -408,10 +408,33 @@ public class CompositorHitTestingTests : CompositorTestsBase s.AssertHitTest(175, 100, null); } } + + [Fact] + public void HitTest_Should_Not_Hit_Controls_Next_Pixel() + { + using (var s = new CompositorServices(new Size(200, 200))) + { + Button targetButton; + + var stackPanel = new StackPanel + { + Orientation = Orientation.Vertical, + Children = + { + new Button { Width = 10, Height = 10 }, + { targetButton = new Button { Width = 10, Height = 10 } } + } + }; + + s.TopLevel.Content = stackPanel; + + s.AssertHitTest(new Point(5, 10), null, targetButton); + } + } private IDisposable TestApplication() { return UnitTestApplication.Start(TestServices.MockPlatformRenderInterface); } -} \ No newline at end of file +} From c226432e9b6e3392e93c38d1708ed6dc61cc291b Mon Sep 17 00:00:00 2001 From: Evgeny Gorbovoy Date: Thu, 28 Jul 2022 14:40:38 +0200 Subject: [PATCH 04/12] Tests fixing --- .../Rendering/CompositorHitTestingTests.cs | 9 +++++---- .../Rendering/DeferredRendererTests_HitTesting.cs | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs index 6543649eb2..a584a859ec 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs @@ -414,21 +414,22 @@ public class CompositorHitTestingTests : CompositorTestsBase { using (var s = new CompositorServices(new Size(200, 200))) { - Button targetButton; + Rectangle targetRectangle; var stackPanel = new StackPanel { Orientation = Orientation.Vertical, + HorizontalAlignment = HorizontalAlignment.Left, Children = { - new Button { Width = 10, Height = 10 }, - { targetButton = new Button { Width = 10, Height = 10 } } + new Rectangle { Width = 10, Height = 10, Fill= Brushes.Red}, + { targetRectangle = new Rectangle { Width = 10, Height = 10, Fill = Brushes.Green} } } }; s.TopLevel.Content = stackPanel; - s.AssertHitTest(new Point(5, 10), null, targetButton); + s.AssertHitTest(new Point(5, 10), null, targetRectangle); } } diff --git a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs index e1b36c9d72..7800ddfc8a 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs @@ -542,7 +542,7 @@ namespace Avalonia.Base.UnitTests.Rendering { using (TestApplication()) { - Button targetButton; + Rectangle targetRectangle; var root = new TestRoot { @@ -551,10 +551,11 @@ namespace Avalonia.Base.UnitTests.Rendering Child = new StackPanel { Orientation = Orientation.Vertical, + HorizontalAlignment = HorizontalAlignment.Left, Children = { - new Button { Width = 10, Height = 10 }, - { targetButton = new Button { Width = 10, Height = 10 } } + new Rectangle { Width = 10, Height = 10, Fill = Brushes.Red}, + { targetRectangle = new Rectangle { Width = 10, Height = 10, Fill = Brushes.Green} } } } }; @@ -564,7 +565,7 @@ namespace Avalonia.Base.UnitTests.Rendering root.Arrange(new Rect(root.DesiredSize)); var result = root.Renderer.HitTest(new Point(5, 10), root, null); - Assert.Equal(new[] { targetButton }, result); + Assert.Equal(new[] { targetRectangle }, result); } } From 1c1499c39961786f5b5046fc2fbd4c641f570566 Mon Sep 17 00:00:00 2001 From: Evgeny Gorbovoy Date: Thu, 28 Jul 2022 19:00:19 +0200 Subject: [PATCH 05/12] More `ContainsExclusive` --- .../Rendering/SceneGraph/RectangleNode.cs | 4 ++-- .../Rendering/CompositorHitTestingTests.cs | 6 +++--- .../Rendering/DeferredRendererTests_HitTesting.cs | 10 +++++----- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs index 7b79c446f9..a9d1bf96e5 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs @@ -103,13 +103,13 @@ namespace Avalonia.Rendering.SceneGraph if (Brush != null) { var rect = Rect.Rect.Inflate((Pen?.Thickness / 2) ?? 0); - return rect.Contains(p); + return rect.ContainsExclusive(p); } else { var borderRect = Rect.Rect.Inflate((Pen?.Thickness / 2) ?? 0); var emptyRect = Rect.Rect.Deflate((Pen?.Thickness / 2) ?? 0); - return borderRect.Contains(p) && !emptyRect.Contains(p); + return borderRect.ContainsExclusive(p) && !emptyRect.ContainsExclusive(p); } } diff --git a/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs index a584a859ec..02012bf62b 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/CompositorHitTestingTests.cs @@ -414,7 +414,7 @@ public class CompositorHitTestingTests : CompositorTestsBase { using (var s = new CompositorServices(new Size(200, 200))) { - Rectangle targetRectangle; + Border targetRectangle; var stackPanel = new StackPanel { @@ -422,8 +422,8 @@ public class CompositorHitTestingTests : CompositorTestsBase HorizontalAlignment = HorizontalAlignment.Left, Children = { - new Rectangle { Width = 10, Height = 10, Fill= Brushes.Red}, - { targetRectangle = new Rectangle { Width = 10, Height = 10, Fill = Brushes.Green} } + new Border { Width = 10, Height = 10, Background= Brushes.Red}, + { targetRectangle = new Border { Width = 10, Height = 10, Background = Brushes.Green} } } }; diff --git a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs index 7800ddfc8a..d3fdbb63db 100644 --- a/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs +++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs @@ -542,11 +542,11 @@ namespace Avalonia.Base.UnitTests.Rendering { using (TestApplication()) { - Rectangle targetRectangle; + Border targetRectangle; var root = new TestRoot { - Width = 300, + Width = 50, Height = 200, Child = new StackPanel { @@ -554,8 +554,8 @@ namespace Avalonia.Base.UnitTests.Rendering HorizontalAlignment = HorizontalAlignment.Left, Children = { - new Rectangle { Width = 10, Height = 10, Fill = Brushes.Red}, - { targetRectangle = new Rectangle { Width = 10, Height = 10, Fill = Brushes.Green} } + new Border { Width = 50, Height = 50, Background = Brushes.Red}, + { targetRectangle = new Border { Width = 50, Height = 50, Background = Brushes.Green} } } } }; @@ -564,7 +564,7 @@ namespace Avalonia.Base.UnitTests.Rendering root.Measure(Size.Infinity); root.Arrange(new Rect(root.DesiredSize)); - var result = root.Renderer.HitTest(new Point(5, 10), root, null); + var result = root.Renderer.HitTest(new Point(25, 50), root, null); Assert.Equal(new[] { targetRectangle }, result); } } From b5e4a94c4f45c9d6ae7bea85aa6f75212b537e81 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 29 Jul 2022 02:46:41 -0400 Subject: [PATCH 06/12] Minor fluent theme fixes --- .../Controls/ContextMenu.xaml | 4 +- .../Controls/DataValidationErrors.xaml | 84 +++++++++++-------- .../Controls/FluentControls.xaml | 1 - src/Avalonia.Themes.Fluent/Controls/Menu.xaml | 6 +- .../Controls/MenuFlyoutPresenter.xaml | 1 + 5 files changed, 53 insertions(+), 43 deletions(-) diff --git a/src/Avalonia.Themes.Fluent/Controls/ContextMenu.xaml b/src/Avalonia.Themes.Fluent/Controls/ContextMenu.xaml index 8365ee61d3..fdd79ed736 100644 --- a/src/Avalonia.Themes.Fluent/Controls/ContextMenu.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/ContextMenu.xaml @@ -29,7 +29,7 @@ - + 0,4,0,4 @@ -54,7 +54,7 @@ MinHeight="{TemplateBinding MinHeight}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" CornerRadius="{TemplateBinding CornerRadius}"> - + @@ -26,10 +25,33 @@ - - - - + + + + + + + + + + + + - + - - - - - - - - - + diff --git a/src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml b/src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml index 0499495239..577539b26b 100644 --- a/src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml @@ -75,5 +75,4 @@ - diff --git a/src/Avalonia.Themes.Fluent/Controls/Menu.xaml b/src/Avalonia.Themes.Fluent/Controls/Menu.xaml index 12d18ae644..f5fd69a67f 100644 --- a/src/Avalonia.Themes.Fluent/Controls/Menu.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/Menu.xaml @@ -5,7 +5,7 @@ - + @@ -46,7 +46,7 @@ MinHeight="{DynamicResource MenuFlyoutThemeMinHeight}" HorizontalAlignment="Stretch" CornerRadius="{DynamicResource OverlayCornerRadius}"> - + - + Date: Fri, 29 Jul 2022 02:58:21 -0400 Subject: [PATCH 07/12] Port default theme to use ControlThemes + some formatting --- .../Controls/AutoCompleteBox.xaml | 36 +- .../Controls/Button.xaml | 54 +- .../Controls/ButtonSpinner.xaml | 188 +++---- .../Controls/Calendar.xaml | 24 +- .../Controls/CalendarButton.xaml | 90 ++-- .../Controls/CalendarDatePicker.xaml | 136 ++--- .../Controls/CalendarDayButton.xaml | 149 +++--- .../Controls/CalendarItem.xaml | 139 +++-- .../Controls/CaptionButtons.xaml | 153 +++--- .../Controls/Carousel.xaml | 38 +- .../Controls/CheckBox.xaml | 95 ++-- .../Controls/ComboBox.xaml | 81 ++- .../Controls/ComboBoxItem.xaml | 63 ++- .../Controls/ContentControl.xaml | 36 +- .../Controls/ContextMenu.xaml | 46 +- .../Controls/DataValidationErrors.xaml | 91 ++-- .../Controls/DatePicker.xaml | 496 +++++++++--------- .../Controls/DateTimePickerShared.xaml | 139 +++++ .../Controls/DropDownButton.xaml | 70 +-- .../Controls/EmbeddableControlRoot.xaml | 43 +- .../Controls/Expander.xaml | 382 ++++++++------ .../Controls/FlyoutPresenter.xaml | 20 +- .../Controls/FocusAdorner.xaml | 9 +- .../Controls/GridSplitter.xaml | 21 +- .../Controls/ItemsControl.xaml | 36 +- .../Controls/Label.xaml | 40 +- .../Controls/ListBox.xaml | 71 +-- .../Controls/ListBoxItem.xaml | 66 +-- .../Controls/ManagedFileChooser.xaml | 319 ++++++----- .../Controls/Menu.xaml | 100 +++- .../Controls/MenuFlyoutPresenter.xaml | 21 +- .../Controls/MenuItem.xaml | 163 +++--- .../Controls/NativeMenuBar.xaml | 60 +-- .../Controls/NotificationCard.xaml | 171 +++--- .../Controls/NumericUpDown.xaml | 49 +- .../Controls/OverlayPopupHost.xaml | 48 +- .../Controls/PathIcon.xaml | 21 +- .../Controls/PopupRoot.xaml | 57 +- .../Controls/ProgressBar.xaml | 155 +++--- .../Controls/RadioButton.xaml | 87 +-- .../Controls/RepeatButton.xaml | 71 ++- .../Controls/RichTextBlock.xaml | 18 +- .../Controls/ScrollBar.xaml | 283 +++++----- .../Controls/ScrollViewer.xaml | 133 +++-- .../Controls/Separator.xaml | 28 +- .../Controls/Slider.xaml | 213 ++++---- .../Controls/SplitButton.xaml | 444 +++++++--------- .../Controls/SplitView.xaml | 451 ++++++++-------- .../Controls/TabControl.xaml | 101 ++-- .../Controls/TabItem.xaml | 91 ++-- .../Controls/TabStrip.xaml | 17 +- .../Controls/TabStripItem.xaml | 33 +- .../Controls/TextBox.xaml | 338 ++++++------ .../Controls/TimePicker.xaml | 467 +++++++++-------- .../Controls/TitleBar.xaml | 80 +-- .../Controls/ToggleButton.xaml | 62 +-- .../Controls/ToggleSwitch.xaml | 483 ++++++++--------- .../Controls/ToolTip.xaml | 40 +- .../Controls/TransitioningContentControl.xaml | 23 +- .../Controls/TreeView.xaml | 58 +- .../Controls/TreeViewItem.xaml | 159 +++--- .../Controls/UserControl.xaml | 39 +- .../Controls/Window.xaml | 59 ++- .../Controls/WindowNotificationManager.xaml | 81 +-- src/Avalonia.Themes.Default/DefaultTheme.xaml | 143 ++--- 65 files changed, 4201 insertions(+), 3777 deletions(-) create mode 100644 src/Avalonia.Themes.Default/Controls/DateTimePickerShared.xaml diff --git a/src/Avalonia.Themes.Default/Controls/AutoCompleteBox.xaml b/src/Avalonia.Themes.Default/Controls/AutoCompleteBox.xaml index fac8ca51f8..65dfaf982b 100644 --- a/src/Avalonia.Themes.Default/Controls/AutoCompleteBox.xaml +++ b/src/Avalonia.Themes.Default/Controls/AutoCompleteBox.xaml @@ -1,32 +1,34 @@ - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/Button.xaml b/src/Avalonia.Themes.Default/Controls/Button.xaml index a2971c3ff6..9018677ab6 100644 --- a/src/Avalonia.Themes.Default/Controls/Button.xaml +++ b/src/Avalonia.Themes.Default/Controls/Button.xaml @@ -1,36 +1,38 @@ - - - - - - + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ButtonSpinner.xaml b/src/Avalonia.Themes.Default/Controls/ButtonSpinner.xaml index 561ca8bedd..4585fc8e56 100644 --- a/src/Avalonia.Themes.Default/Controls/ButtonSpinner.xaml +++ b/src/Avalonia.Themes.Default/Controls/ButtonSpinner.xaml @@ -1,107 +1,89 @@ - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + - - - - - + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/Calendar.xaml b/src/Avalonia.Themes.Default/Controls/Calendar.xaml index 4b67aa232b..6f7267581b 100644 --- a/src/Avalonia.Themes.Default/Controls/Calendar.xaml +++ b/src/Avalonia.Themes.Default/Controls/Calendar.xaml @@ -1,12 +1,14 @@ - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/CalendarButton.xaml b/src/Avalonia.Themes.Default/Controls/CalendarButton.xaml index 3314534b3b..59fb24663f 100644 --- a/src/Avalonia.Themes.Default/Controls/CalendarButton.xaml +++ b/src/Avalonia.Themes.Default/Controls/CalendarButton.xaml @@ -1,81 +1,73 @@ - - - - - - - - + + - - + + - - - + + + diff --git a/src/Avalonia.Themes.Default/Controls/CalendarDatePicker.xaml b/src/Avalonia.Themes.Default/Controls/CalendarDatePicker.xaml index 3e2e497d2c..43fc8c7a34 100644 --- a/src/Avalonia.Themes.Default/Controls/CalendarDatePicker.xaml +++ b/src/Avalonia.Themes.Default/Controls/CalendarDatePicker.xaml @@ -1,20 +1,21 @@ - - - + - + + UseFloatingWatermark="{TemplateBinding UseFloatingWatermark}" + Watermark="{TemplateBinding Watermark}" /> - + + Margin="6,-1,6,6" + IsVisible="False"> @@ -132,8 +133,8 @@ + Margin="6,-3,7,6" + IsVisible="False"> @@ -146,39 +147,33 @@ - - + Stretch="Fill" /> - - - - - - - + + + + diff --git a/src/Avalonia.Themes.Default/Controls/CaptionButtons.xaml b/src/Avalonia.Themes.Default/Controls/CaptionButtons.xaml index be6642467f..adc02b7c3c 100644 --- a/src/Avalonia.Themes.Default/Controls/CaptionButtons.xaml +++ b/src/Avalonia.Themes.Default/Controls/CaptionButtons.xaml @@ -1,73 +1,106 @@ - - + + + + + - - - - - - - - - - + + + + + - - - - - - - - + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/Carousel.xaml b/src/Avalonia.Themes.Default/Controls/Carousel.xaml index baba0649aa..e79e3942c9 100644 --- a/src/Avalonia.Themes.Default/Controls/Carousel.xaml +++ b/src/Avalonia.Themes.Default/Controls/Carousel.xaml @@ -1,17 +1,21 @@ - + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/CheckBox.xaml b/src/Avalonia.Themes.Default/Controls/CheckBox.xaml index 170ecdd5b8..10e0b883d5 100644 --- a/src/Avalonia.Themes.Default/Controls/CheckBox.xaml +++ b/src/Avalonia.Themes.Default/Controls/CheckBox.xaml @@ -1,72 +1,75 @@ - - - - - - - - - + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ComboBox.xaml b/src/Avalonia.Themes.Default/Controls/ComboBox.xaml index 262f63e2d2..d7dabae516 100644 --- a/src/Avalonia.Themes.Default/Controls/ComboBox.xaml +++ b/src/Avalonia.Themes.Default/Controls/ComboBox.xaml @@ -1,23 +1,7 @@ - - - - - - Item 1 - Item 2 - - - Item 1 - Item 2 - - - - - - - - + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ComboBoxItem.xaml b/src/Avalonia.Themes.Default/Controls/ComboBoxItem.xaml index a694143bec..c3d8b6f900 100644 --- a/src/Avalonia.Themes.Default/Controls/ComboBoxItem.xaml +++ b/src/Avalonia.Themes.Default/Controls/ComboBoxItem.xaml @@ -1,42 +1,39 @@ - - - - - - - - - - - - - + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ContentControl.xaml b/src/Avalonia.Themes.Default/Controls/ContentControl.xaml index d32bc399b6..415b1dc721 100644 --- a/src/Avalonia.Themes.Default/Controls/ContentControl.xaml +++ b/src/Avalonia.Themes.Default/Controls/ContentControl.xaml @@ -1,16 +1,20 @@ - + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ContextMenu.xaml b/src/Avalonia.Themes.Default/Controls/ContextMenu.xaml index 987b72aaa2..baad686bd9 100644 --- a/src/Avalonia.Themes.Default/Controls/ContextMenu.xaml +++ b/src/Avalonia.Themes.Default/Controls/ContextMenu.xaml @@ -1,25 +1,29 @@ - + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/DataValidationErrors.xaml b/src/Avalonia.Themes.Default/Controls/DataValidationErrors.xaml index d7bf4bbbf1..da8ec03cd4 100644 --- a/src/Avalonia.Themes.Default/Controls/DataValidationErrors.xaml +++ b/src/Avalonia.Themes.Default/Controls/DataValidationErrors.xaml @@ -1,43 +1,48 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/DatePicker.xaml b/src/Avalonia.Themes.Default/Controls/DatePicker.xaml index c1ee941416..8198158d5e 100644 --- a/src/Avalonia.Themes.Default/Controls/DatePicker.xaml +++ b/src/Avalonia.Themes.Default/Controls/DatePicker.xaml @@ -1,239 +1,186 @@ - - - 0,0,0,4 - 40 - 40 - 41 - 296 - 456 - 0,3,0,6 - 9,3,0,6 - 0,3,0,6 - 9,3,0,6 - 1 - + + + + + + + + + + + + Error + + + + + + + - - - - - - + 0,0,0,4 + 40 + 40 + 41 + 296 + 456 + 0,3,0,6 + 9,3,0,6 + 0,3,0,6 + 9,3,0,6 + 1 - - - - - - + + - - + + - - - - - - + - + + + - - - - - + + + ItemHeight="{DynamicResource DatePickerFlyoutPresenterItemHeight}" + PanelType="Month" + ShouldLoop="True" /> + Theme="{StaticResource DefaultDateTimePickerUpButton}" /> + Theme="{StaticResource DefaultDateTimePickerDownButton}" /> + ItemHeight="{DynamicResource DatePickerFlyoutPresenterItemHeight}" + PanelType="Day" + ShouldLoop="True" /> + Theme="{StaticResource DefaultDateTimePickerUpButton}" /> + Theme="{StaticResource DefaultDateTimePickerDownButton}" /> + ItemHeight="{DynamicResource DatePickerFlyoutPresenterItemHeight}" + PanelType="Year" + ShouldLoop="False" /> + Theme="{StaticResource DefaultDateTimePickerUpButton}" /> + Theme="{StaticResource DefaultDateTimePickerDownButton}" /> - + + + + + - + + HorizontalAlignment="Center" + Fill="{DynamicResource ThemeControlMidHighBrush}" /> - - - - - - + + + + - - - + diff --git a/src/Avalonia.Themes.Default/Controls/DateTimePickerShared.xaml b/src/Avalonia.Themes.Default/Controls/DateTimePickerShared.xaml new file mode 100644 index 0000000000..1e4b50ca40 --- /dev/null +++ b/src/Avalonia.Themes.Default/Controls/DateTimePickerShared.xaml @@ -0,0 +1,139 @@ + + + + + + + Standard Item + Month Item + Button + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/DropDownButton.xaml b/src/Avalonia.Themes.Default/Controls/DropDownButton.xaml index 662c6379fb..6a50cd6e36 100644 --- a/src/Avalonia.Themes.Default/Controls/DropDownButton.xaml +++ b/src/Avalonia.Themes.Default/Controls/DropDownButton.xaml @@ -1,12 +1,14 @@ - - - + - + - + - - + + + diff --git a/src/Avalonia.Themes.Default/Controls/EmbeddableControlRoot.xaml b/src/Avalonia.Themes.Default/Controls/EmbeddableControlRoot.xaml index 9ffe51fae8..79d6c6d917 100644 --- a/src/Avalonia.Themes.Default/Controls/EmbeddableControlRoot.xaml +++ b/src/Avalonia.Themes.Default/Controls/EmbeddableControlRoot.xaml @@ -1,19 +1,24 @@ - + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/Expander.xaml b/src/Avalonia.Themes.Default/Controls/Expander.xaml index 2f18faf84a..bfa5fb3130 100644 --- a/src/Avalonia.Themes.Default/Controls/Expander.xaml +++ b/src/Avalonia.Themes.Default/Controls/Expander.xaml @@ -1,196 +1,256 @@ - + - - + + - - + + - Expanded content + - + - Expanded content + - + - Expanded content + - + - Expanded content + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/FlyoutPresenter.xaml b/src/Avalonia.Themes.Default/Controls/FlyoutPresenter.xaml index 3bc5e085ff..08959cfbbe 100644 --- a/src/Avalonia.Themes.Default/Controls/FlyoutPresenter.xaml +++ b/src/Avalonia.Themes.Default/Controls/FlyoutPresenter.xaml @@ -1,8 +1,10 @@ - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/FocusAdorner.xaml b/src/Avalonia.Themes.Default/Controls/FocusAdorner.xaml index 2d5e369573..f1d5f5f2ac 100644 --- a/src/Avalonia.Themes.Default/Controls/FocusAdorner.xaml +++ b/src/Avalonia.Themes.Default/Controls/FocusAdorner.xaml @@ -1,10 +1,11 @@ - diff --git a/src/Avalonia.Themes.Default/Controls/GridSplitter.xaml b/src/Avalonia.Themes.Default/Controls/GridSplitter.xaml index 490ae01318..f2a3f01397 100644 --- a/src/Avalonia.Themes.Default/Controls/GridSplitter.xaml +++ b/src/Avalonia.Themes.Default/Controls/GridSplitter.xaml @@ -1,6 +1,7 @@ - - - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/ItemsControl.xaml b/src/Avalonia.Themes.Default/Controls/ItemsControl.xaml index 19d13b6399..d8cdf96abd 100644 --- a/src/Avalonia.Themes.Default/Controls/ItemsControl.xaml +++ b/src/Avalonia.Themes.Default/Controls/ItemsControl.xaml @@ -1,16 +1,20 @@ - + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/Label.xaml b/src/Avalonia.Themes.Default/Controls/Label.xaml index 1e04d05497..0faa4852f2 100644 --- a/src/Avalonia.Themes.Default/Controls/Label.xaml +++ b/src/Avalonia.Themes.Default/Controls/Label.xaml @@ -1,18 +1,22 @@ - + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ListBox.xaml b/src/Avalonia.Themes.Default/Controls/ListBox.xaml index b1fcb830b3..7308738681 100644 --- a/src/Avalonia.Themes.Default/Controls/ListBox.xaml +++ b/src/Avalonia.Themes.Default/Controls/ListBox.xaml @@ -1,35 +1,38 @@ - - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/ListBoxItem.xaml b/src/Avalonia.Themes.Default/Controls/ListBoxItem.xaml index c1360c5d98..4d918326c8 100644 --- a/src/Avalonia.Themes.Default/Controls/ListBoxItem.xaml +++ b/src/Avalonia.Themes.Default/Controls/ListBoxItem.xaml @@ -1,42 +1,44 @@ - - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ManagedFileChooser.xaml b/src/Avalonia.Themes.Default/Controls/ManagedFileChooser.xaml index f9f77bf455..52d9000396 100644 --- a/src/Avalonia.Themes.Default/Controls/ManagedFileChooser.xaml +++ b/src/Avalonia.Themes.Default/Controls/ManagedFileChooser.xaml @@ -1,153 +1,196 @@ - - - - - - + + + + Show hidden files + + + + + + + + + - + SelectedItem="{Binding SelectedFilter}" /> - + - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - \ No newline at end of file + + diff --git a/src/Avalonia.Themes.Default/Controls/Menu.xaml b/src/Avalonia.Themes.Default/Controls/Menu.xaml index 583add1017..c698343d83 100644 --- a/src/Avalonia.Themes.Default/Controls/Menu.xaml +++ b/src/Avalonia.Themes.Default/Controls/Menu.xaml @@ -1,17 +1,83 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/MenuFlyoutPresenter.xaml b/src/Avalonia.Themes.Default/Controls/MenuFlyoutPresenter.xaml index d56b46b17c..78c3d767a3 100644 --- a/src/Avalonia.Themes.Default/Controls/MenuFlyoutPresenter.xaml +++ b/src/Avalonia.Themes.Default/Controls/MenuFlyoutPresenter.xaml @@ -1,6 +1,8 @@ - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/MenuItem.xaml b/src/Avalonia.Themes.Default/Controls/MenuItem.xaml index 05c286c1f5..b2d0f3535a 100644 --- a/src/Avalonia.Themes.Default/Controls/MenuItem.xaml +++ b/src/Avalonia.Themes.Default/Controls/MenuItem.xaml @@ -1,14 +1,14 @@ - - - - - - - - - - + - + - + - - + + + diff --git a/src/Avalonia.Themes.Default/Controls/NativeMenuBar.xaml b/src/Avalonia.Themes.Default/Controls/NativeMenuBar.xaml index 3b0019eea1..3c74e2743a 100644 --- a/src/Avalonia.Themes.Default/Controls/NativeMenuBar.xaml +++ b/src/Avalonia.Themes.Default/Controls/NativeMenuBar.xaml @@ -1,30 +1,30 @@ - - - - - - + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/NotificationCard.xaml b/src/Avalonia.Themes.Default/Controls/NotificationCard.xaml index c411fede11..524f964afc 100644 --- a/src/Avalonia.Themes.Default/Controls/NotificationCard.xaml +++ b/src/Avalonia.Themes.Default/Controls/NotificationCard.xaml @@ -1,93 +1,98 @@ - - - - - - - - - - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/NumericUpDown.xaml b/src/Avalonia.Themes.Default/Controls/NumericUpDown.xaml index 6740be69bb..d3adfb31e0 100644 --- a/src/Avalonia.Themes.Default/Controls/NumericUpDown.xaml +++ b/src/Avalonia.Themes.Default/Controls/NumericUpDown.xaml @@ -1,40 +1,39 @@ - - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/OverlayPopupHost.xaml b/src/Avalonia.Themes.Default/Controls/OverlayPopupHost.xaml index 07d905ea1d..d1f5585c02 100644 --- a/src/Avalonia.Themes.Default/Controls/OverlayPopupHost.xaml +++ b/src/Avalonia.Themes.Default/Controls/OverlayPopupHost.xaml @@ -1,23 +1,25 @@ - + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/PathIcon.xaml b/src/Avalonia.Themes.Default/Controls/PathIcon.xaml index 039f0ef10c..4116b5784e 100644 --- a/src/Avalonia.Themes.Default/Controls/PathIcon.xaml +++ b/src/Avalonia.Themes.Default/Controls/PathIcon.xaml @@ -1,21 +1,22 @@ - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/PopupRoot.xaml b/src/Avalonia.Themes.Default/Controls/PopupRoot.xaml index 5e8f3337ee..a5593e3a68 100644 --- a/src/Avalonia.Themes.Default/Controls/PopupRoot.xaml +++ b/src/Avalonia.Themes.Default/Controls/PopupRoot.xaml @@ -1,27 +1,30 @@ - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ProgressBar.xaml b/src/Avalonia.Themes.Default/Controls/ProgressBar.xaml index 3f684f3936..5adb5bde7e 100644 --- a/src/Avalonia.Themes.Default/Controls/ProgressBar.xaml +++ b/src/Avalonia.Themes.Default/Controls/ProgressBar.xaml @@ -1,6 +1,6 @@ - + @@ -12,30 +12,42 @@ - - - - - - - - - + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/RadioButton.xaml b/src/Avalonia.Themes.Default/Controls/RadioButton.xaml index ae33946009..c837b44402 100644 --- a/src/Avalonia.Themes.Default/Controls/RadioButton.xaml +++ b/src/Avalonia.Themes.Default/Controls/RadioButton.xaml @@ -1,61 +1,64 @@ - - - - - - - - - - + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/RepeatButton.xaml b/src/Avalonia.Themes.Default/Controls/RepeatButton.xaml index 47398966f7..73cfd4d810 100644 --- a/src/Avalonia.Themes.Default/Controls/RepeatButton.xaml +++ b/src/Avalonia.Themes.Default/Controls/RepeatButton.xaml @@ -1,41 +1,34 @@ - - - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/RichTextBlock.xaml b/src/Avalonia.Themes.Default/Controls/RichTextBlock.xaml index d7bf6e5cf9..c0570282cb 100644 --- a/src/Avalonia.Themes.Default/Controls/RichTextBlock.xaml +++ b/src/Avalonia.Themes.Default/Controls/RichTextBlock.xaml @@ -1,10 +1,14 @@ - - - - + + + + - - + + diff --git a/src/Avalonia.Themes.Default/Controls/ScrollBar.xaml b/src/Avalonia.Themes.Default/Controls/ScrollBar.xaml index 0f8fa4986d..d28ba66f6d 100644 --- a/src/Avalonia.Themes.Default/Controls/ScrollBar.xaml +++ b/src/Avalonia.Themes.Default/Controls/ScrollBar.xaml @@ -1,142 +1,151 @@ - - - - + + + + + + + + - - - - - - - + + - + - - + + + diff --git a/src/Avalonia.Themes.Default/Controls/ScrollViewer.xaml b/src/Avalonia.Themes.Default/Controls/ScrollViewer.xaml index aab1b76259..83b3330fcf 100644 --- a/src/Avalonia.Themes.Default/Controls/ScrollViewer.xaml +++ b/src/Avalonia.Themes.Default/Controls/ScrollViewer.xaml @@ -1,106 +1,125 @@ - - + - - + - - + + + diff --git a/src/Avalonia.Themes.Default/Controls/Separator.xaml b/src/Avalonia.Themes.Default/Controls/Separator.xaml index 6a318d2e85..e142cf29ad 100644 --- a/src/Avalonia.Themes.Default/Controls/Separator.xaml +++ b/src/Avalonia.Themes.Default/Controls/Separator.xaml @@ -1,21 +1,19 @@ - - - - - + - + diff --git a/src/Avalonia.Themes.Default/Controls/Slider.xaml b/src/Avalonia.Themes.Default/Controls/Slider.xaml index bcb330f188..851ee1b78a 100644 --- a/src/Avalonia.Themes.Default/Controls/Slider.xaml +++ b/src/Avalonia.Themes.Default/Controls/Slider.xaml @@ -1,97 +1,128 @@ - - - - - - - - - + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/SplitButton.xaml b/src/Avalonia.Themes.Default/Controls/SplitButton.xaml index 0c46ce3724..aa71d0e7c7 100644 --- a/src/Avalonia.Themes.Default/Controls/SplitButton.xaml +++ b/src/Avalonia.Themes.Default/Controls/SplitButton.xaml @@ -1,9 +1,9 @@ - + - @@ -12,50 +12,127 @@ - - 24 - 24 - 1 - 24 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 24 + 24 + 1 + 24 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + @@ -65,211 +142,82 @@ - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - + - - - - + + + diff --git a/src/Avalonia.Themes.Default/Controls/SplitView.xaml b/src/Avalonia.Themes.Default/Controls/SplitView.xaml index 10eda2d9cd..b0e4d0b096 100644 --- a/src/Avalonia.Themes.Default/Controls/SplitView.xaml +++ b/src/Avalonia.Themes.Default/Controls/SplitView.xaml @@ -1,6 +1,6 @@ - + - - 320 - 48 - - 00:00:00.2 - 00:00:00.1 - 0.1,0.9,0.2,1.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/TabControl.xaml b/src/Avalonia.Themes.Default/Controls/TabControl.xaml index afb5010baa..4d1fcc0336 100644 --- a/src/Avalonia.Themes.Default/Controls/TabControl.xaml +++ b/src/Avalonia.Themes.Default/Controls/TabControl.xaml @@ -1,62 +1,61 @@ - - - - - - - - - - - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/TabItem.xaml b/src/Avalonia.Themes.Default/Controls/TabItem.xaml index c7748299a0..7b6a1d1116 100644 --- a/src/Avalonia.Themes.Default/Controls/TabItem.xaml +++ b/src/Avalonia.Themes.Default/Controls/TabItem.xaml @@ -1,45 +1,46 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/TabStrip.xaml b/src/Avalonia.Themes.Default/Controls/TabStrip.xaml index 29ca1e7c94..3960c1d275 100644 --- a/src/Avalonia.Themes.Default/Controls/TabStrip.xaml +++ b/src/Avalonia.Themes.Default/Controls/TabStrip.xaml @@ -1,11 +1,13 @@ - - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/TabStripItem.xaml b/src/Avalonia.Themes.Default/Controls/TabStripItem.xaml index 61eecc0395..b4d7218ec3 100644 --- a/src/Avalonia.Themes.Default/Controls/TabStripItem.xaml +++ b/src/Avalonia.Themes.Default/Controls/TabStripItem.xaml @@ -1,24 +1,27 @@ - - - - + + + diff --git a/src/Avalonia.Themes.Default/Controls/TextBox.xaml b/src/Avalonia.Themes.Default/Controls/TextBox.xaml index 1885d3b65b..3cc8bc5421 100644 --- a/src/Avalonia.Themes.Default/Controls/TextBox.xaml +++ b/src/Avalonia.Themes.Default/Controls/TextBox.xaml @@ -1,29 +1,101 @@ - - - M 11.416016,10 20,1.4160156 18.583984,0 10,8.5839846 1.4160156,0 0,1.4160156 8.5839844,10 0,18.583985 1.4160156,20 10,11.416015 18.583984,20 20,18.583985 Z - m10.051 7.0032c2.215 0 4.0105 1.7901 4.0105 3.9984s-1.7956 3.9984-4.0105 3.9984c-2.215 0-4.0105-1.7901-4.0105-3.9984s1.7956-3.9984 4.0105-3.9984zm0 1.4994c-1.3844 0-2.5066 1.1188-2.5066 2.499s1.1222 2.499 2.5066 2.499 2.5066-1.1188 2.5066-2.499-1.1222-2.499-2.5066-2.499zm0-5.0026c4.6257 0 8.6188 3.1487 9.7267 7.5613 0.10085 0.40165-0.14399 0.80877-0.54686 0.90931-0.40288 0.10054-0.81122-0.14355-0.91208-0.54521-0.94136-3.7492-4.3361-6.4261-8.2678-6.4261-3.9334 0-7.3292 2.6792-8.2689 6.4306-0.10063 0.40171-0.50884 0.64603-0.91177 0.54571s-0.648-0.5073-0.54737-0.90901c1.106-4.4152 5.1003-7.5667 9.728-7.5667z - m0.21967 0.21965c-0.26627 0.26627-0.29047 0.68293-0.07262 0.97654l0.07262 0.08412 4.0346 4.0346c-1.922 1.3495-3.3585 3.365-3.9554 5.7495-0.10058 0.4018 0.14362 0.8091 0.54543 0.9097 0.40182 0.1005 0.80909-0.1436 0.90968-0.5455 0.52947-2.1151 1.8371-3.8891 3.5802-5.0341l1.8096 1.8098c-0.70751 0.7215-1.1438 1.71-1.1438 2.8003 0 2.2092 1.7909 4 4 4 1.0904 0 2.0788-0.4363 2.8004-1.1438l5.9193 5.9195c0.2929 0.2929 0.7677 0.2929 1.0606 0 0.2663-0.2662 0.2905-0.6829 0.0726-0.9765l-0.0726-0.0841-6.1135-6.1142 0.0012-0.0015-1.2001-1.1979-2.8699-2.8693 2e-3 -8e-4 -2.8812-2.8782 0.0012-0.0018-1.1333-1.1305-4.3064-4.3058c-0.29289-0.29289-0.76777-0.29289-1.0607 0zm7.9844 9.0458 3.5351 3.5351c-0.45 0.4358-1.0633 0.704-1.7392 0.704-1.3807 0-2.5-1.1193-2.5-2.5 0-0.6759 0.26824-1.2892 0.7041-1.7391zm1.7959-5.7655c-1.0003 0-1.9709 0.14807-2.8889 0.425l1.237 1.2362c0.5358-0.10587 1.0883-0.16119 1.6519-0.16119 3.9231 0 7.3099 2.6803 8.2471 6.4332 0.1004 0.4018 0.5075 0.6462 0.9094 0.5459 0.4019-0.1004 0.6463-0.5075 0.5459-0.9094-1.103-4.417-5.0869-7.5697-9.7024-7.5697zm0.1947 3.5093 3.8013 3.8007c-0.1018-2.0569-1.7488-3.7024-3.8013-3.8007z + + M 11.416016,10 20,1.4160156 18.583984,0 10,8.5839846 1.4160156,0 0,1.4160156 8.5839844,10 0,18.583985 1.4160156,20 10,11.416015 18.583984,20 20,18.583985 Z + m10.051 7.0032c2.215 0 4.0105 1.7901 4.0105 3.9984s-1.7956 3.9984-4.0105 3.9984c-2.215 0-4.0105-1.7901-4.0105-3.9984s1.7956-3.9984 4.0105-3.9984zm0 1.4994c-1.3844 0-2.5066 1.1188-2.5066 2.499s1.1222 2.499 2.5066 2.499 2.5066-1.1188 2.5066-2.499-1.1222-2.499-2.5066-2.499zm0-5.0026c4.6257 0 8.6188 3.1487 9.7267 7.5613 0.10085 0.40165-0.14399 0.80877-0.54686 0.90931-0.40288 0.10054-0.81122-0.14355-0.91208-0.54521-0.94136-3.7492-4.3361-6.4261-8.2678-6.4261-3.9334 0-7.3292 2.6792-8.2689 6.4306-0.10063 0.40171-0.50884 0.64603-0.91177 0.54571s-0.648-0.5073-0.54737-0.90901c1.106-4.4152 5.1003-7.5667 9.728-7.5667z + m0.21967 0.21965c-0.26627 0.26627-0.29047 0.68293-0.07262 0.97654l0.07262 0.08412 4.0346 4.0346c-1.922 1.3495-3.3585 3.365-3.9554 5.7495-0.10058 0.4018 0.14362 0.8091 0.54543 0.9097 0.40182 0.1005 0.80909-0.1436 0.90968-0.5455 0.52947-2.1151 1.8371-3.8891 3.5802-5.0341l1.8096 1.8098c-0.70751 0.7215-1.1438 1.71-1.1438 2.8003 0 2.2092 1.7909 4 4 4 1.0904 0 2.0788-0.4363 2.8004-1.1438l5.9193 5.9195c0.2929 0.2929 0.7677 0.2929 1.0606 0 0.2663-0.2662 0.2905-0.6829 0.0726-0.9765l-0.0726-0.0841-6.1135-6.1142 0.0012-0.0015-1.2001-1.1979-2.8699-2.8693 2e-3 -8e-4 -2.8812-2.8782 0.0012-0.0018-1.1333-1.1305-4.3064-4.3058c-0.29289-0.29289-0.76777-0.29289-1.0607 0zm7.9844 9.0458 3.5351 3.5351c-0.45 0.4358-1.0633 0.704-1.7392 0.704-1.3807 0-2.5-1.1193-2.5-2.5 0-0.6759 0.26824-1.2892 0.7041-1.7391zm1.7959-5.7655c-1.0003 0-1.9709 0.14807-2.8889 0.425l1.237 1.2362c0.5358-0.10587 1.0883-0.16119 1.6519-0.16119 3.9231 0 7.3099 2.6803 8.2471 6.4332 0.1004 0.4018 0.5075 0.6462 0.9094 0.5459 0.4019-0.1004 0.6463-0.5075 0.5459-0.9094-1.103-4.417-5.0869-7.5697-9.7024-7.5697zm0.1947 3.5093 3.8013 3.8007c-0.1018-2.0569-1.7488-3.7024-3.8013-3.8007z - - - - - + + + + + - - - - - - - + + + + - - - - - - + + + + + + @@ -38,17 +110,17 @@ VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> + Foreground="{DynamicResource ThemeAccentBrush}" + Text="{TemplateBinding Watermark}"> - - + + RelativeSource="{RelativeSource TemplatedParent}" /> @@ -56,148 +128,94 @@ - - + + VerticalScrollBarVisibility="{TemplateBinding (ScrollViewer.VerticalScrollBarVisibility)}"> + IsVisible="{TemplateBinding Text, + Converter={x:Static StringConverters.IsNullOrEmpty}}" + Opacity="0.5" + Text="{TemplateBinding Watermark}" + TextAlignment="{TemplateBinding TextAlignment}" + TextWrapping="{TemplateBinding TextWrapping}" /> + CaretBrush="{TemplateBinding CaretBrush}" + CaretIndex="{TemplateBinding CaretIndex}" + LineHeight="{TemplateBinding LineHeight}" + PasswordChar="{TemplateBinding PasswordChar}" + RevealPassword="{TemplateBinding RevealPassword}" + SelectionBrush="{TemplateBinding SelectionBrush}" + SelectionEnd="{TemplateBinding SelectionEnd}" + SelectionForegroundBrush="{TemplateBinding SelectionForegroundBrush}" + SelectionStart="{TemplateBinding SelectionStart}" + Text="{TemplateBinding Text, + Mode=TwoWay}" + TextAlignment="{TemplateBinding TextAlignment}" + TextWrapping="{TemplateBinding TextWrapping}" /> - + - - - - - - + + + + - - - - - - - - - - - - - - - - - - - + + + - - + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/TimePicker.xaml b/src/Avalonia.Themes.Default/Controls/TimePicker.xaml index 0a5147e335..b0ffc97e68 100644 --- a/src/Avalonia.Themes.Default/Controls/TimePicker.xaml +++ b/src/Avalonia.Themes.Default/Controls/TimePicker.xaml @@ -1,175 +1,204 @@ - - - 40 - 1 - 1 - 0,0,0,4 - 40 - 41 - 242 - 456 - 0,3,0,6 - 0,3,0,6 - + + + + + + + + + + + + Error + + + + + + + - - - + 40 + 1 + 1 + 0,0,0,4 + 40 + 41 + 242 + 456 + 0,3,0,6 + 0,3,0,6 - + + + + + + + - - - + + + - - + + + - + + + + + - - - + + + - + + - - - - - + - + - + + - - - - - - - - + + + + diff --git a/src/Avalonia.Themes.Default/Controls/TitleBar.xaml b/src/Avalonia.Themes.Default/Controls/TitleBar.xaml index 7f8ed24076..a06dfbb834 100644 --- a/src/Avalonia.Themes.Default/Controls/TitleBar.xaml +++ b/src/Avalonia.Themes.Default/Controls/TitleBar.xaml @@ -1,53 +1,65 @@ - + - + - + - + - + - + - - - + - - + + + diff --git a/src/Avalonia.Themes.Default/Controls/ToggleButton.xaml b/src/Avalonia.Themes.Default/Controls/ToggleButton.xaml index 17fb2af16c..2cfbcf6b7a 100644 --- a/src/Avalonia.Themes.Default/Controls/ToggleButton.xaml +++ b/src/Avalonia.Themes.Default/Controls/ToggleButton.xaml @@ -1,40 +1,42 @@ - - - - - - - + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml b/src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml index 2c831cf360..d00358951a 100644 --- a/src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml +++ b/src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml @@ -1,69 +1,28 @@ - - - 0,0,0,6 - 6 - 6 - 0 - 0 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + + + Classes="h1" /> + TextWrapping="Wrap" /> + Content="Enable automatic Updates?" + OffContent="Uit" + OnContent="Aan" + VerticalAlignment="Bottom" /> + Classes="h1" /> + TextWrapping="Wrap" /> @@ -71,29 +30,71 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/ToolTip.xaml b/src/Avalonia.Themes.Default/Controls/ToolTip.xaml index 35c1dceb8d..c4fddd8c4c 100644 --- a/src/Avalonia.Themes.Default/Controls/ToolTip.xaml +++ b/src/Avalonia.Themes.Default/Controls/ToolTip.xaml @@ -1,18 +1,22 @@ - + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/TransitioningContentControl.xaml b/src/Avalonia.Themes.Default/Controls/TransitioningContentControl.xaml index 6a4d56ccb7..63185e11e6 100644 --- a/src/Avalonia.Themes.Default/Controls/TransitioningContentControl.xaml +++ b/src/Avalonia.Themes.Default/Controls/TransitioningContentControl.xaml @@ -1,20 +1,21 @@ - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/TreeView.xaml b/src/Avalonia.Themes.Default/Controls/TreeView.xaml index 67a683dad9..2bc38a0673 100644 --- a/src/Avalonia.Themes.Default/Controls/TreeView.xaml +++ b/src/Avalonia.Themes.Default/Controls/TreeView.xaml @@ -1,27 +1,31 @@ - + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/TreeViewItem.xaml b/src/Avalonia.Themes.Default/Controls/TreeViewItem.xaml index 1996756001..7baf0ef2a6 100644 --- a/src/Avalonia.Themes.Default/Controls/TreeViewItem.xaml +++ b/src/Avalonia.Themes.Default/Controls/TreeViewItem.xaml @@ -1,93 +1,100 @@ - - + + - + + + + + + + + - + + + + + + + + + + + + + + + + + + - - - - - - - - + + diff --git a/src/Avalonia.Themes.Default/Controls/UserControl.xaml b/src/Avalonia.Themes.Default/Controls/UserControl.xaml index d6028daff8..56248f8c5f 100644 --- a/src/Avalonia.Themes.Default/Controls/UserControl.xaml +++ b/src/Avalonia.Themes.Default/Controls/UserControl.xaml @@ -1,16 +1,25 @@ - diff --git a/src/Avalonia.Themes.Default/Controls/Window.xaml b/src/Avalonia.Themes.Default/Controls/Window.xaml index 9c515ebe30..00b108343e 100644 --- a/src/Avalonia.Themes.Default/Controls/Window.xaml +++ b/src/Avalonia.Themes.Default/Controls/Window.xaml @@ -1,26 +1,33 @@ - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Avalonia.Themes.Default/Controls/WindowNotificationManager.xaml b/src/Avalonia.Themes.Default/Controls/WindowNotificationManager.xaml index 7c1efa2e82..6dacf63be5 100644 --- a/src/Avalonia.Themes.Default/Controls/WindowNotificationManager.xaml +++ b/src/Avalonia.Themes.Default/Controls/WindowNotificationManager.xaml @@ -1,45 +1,52 @@ - - + + + + + + + + + + + + + + + + + + + + - - - - - + + diff --git a/src/Avalonia.Themes.Default/DefaultTheme.xaml b/src/Avalonia.Themes.Default/DefaultTheme.xaml index f266402aef..8f5bea557c 100644 --- a/src/Avalonia.Themes.Default/DefaultTheme.xaml +++ b/src/Avalonia.Themes.Default/DefaultTheme.xaml @@ -1,70 +1,75 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 5b8cb5284bf81e1a846ea84a64828c6e7284732b Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 29 Jul 2022 02:59:43 -0400 Subject: [PATCH 08/12] Port default theme DataGrid to control themes --- .../Themes/Default.xaml | 652 ++++++++++-------- .../Themes/Fluent.xaml | 3 +- .../Diagnostics/Views/MainWindow.xaml | 5 +- 3 files changed, 364 insertions(+), 296 deletions(-) diff --git a/src/Avalonia.Controls.DataGrid/Themes/Default.xaml b/src/Avalonia.Controls.DataGrid/Themes/Default.xaml index 0d1fe43eb6..83d9332613 100644 --- a/src/Avalonia.Controls.DataGrid/Themes/Default.xaml +++ b/src/Avalonia.Controls.DataGrid/Themes/Default.xaml @@ -1,305 +1,377 @@ - - 4 - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + diff --git a/src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml b/src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml index a80cc2173c..5ae83427b5 100644 --- a/src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml +++ b/src/Avalonia.Controls.DataGrid/Themes/Fluent.xaml @@ -57,8 +57,7 @@ diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml b/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml index c32638f6ca..680424122b 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml @@ -11,10 +11,7 @@ - - + From ceb59fc475cd8774f03ef472c5becfa81ecfab90 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Fri, 29 Jul 2022 03:09:22 -0400 Subject: [PATCH 09/12] Workaround dev tools issue --- samples/ControlCatalog/App.xaml.cs | 9 ++++++--- .../Diagnostics/Views/MainWindow.xaml | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/samples/ControlCatalog/App.xaml.cs b/samples/ControlCatalog/App.xaml.cs index 7ebb87094a..a5535ea52d 100644 --- a/samples/ControlCatalog/App.xaml.cs +++ b/samples/ControlCatalog/App.xaml.cs @@ -78,9 +78,12 @@ namespace ControlCatalog public override void Initialize() { - Styles.Insert(0, Fluent); - Styles.Insert(1, ColorPickerFluent); - Styles.Insert(2, DataGridFluent); + Styles.Insert(0, DefaultLight); + Styles.Insert(1, ColorPickerDefault); + Styles.Insert(2, DataGridDefault); + //Styles.Insert(0, Fluent); + //Styles.Insert(1, ColorPickerFluent); + //Styles.Insert(2, DataGridFluent); AvaloniaXamlLoader.Load(this); } diff --git a/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml b/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml index 680424122b..004518598c 100644 --- a/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml +++ b/src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml @@ -4,7 +4,8 @@ xmlns:diag="clr-namespace:Avalonia.Diagnostics" xmlns:default="using:Avalonia.Themes.Default" Title="Avalonia DevTools" - x:Class="Avalonia.Diagnostics.Views.MainWindow"> + x:Class="Avalonia.Diagnostics.Views.MainWindow" + Theme="{StaticResource {x:Type Window}}"> From 2a5760921761d819264d190a381a2314b09a0516 Mon Sep 17 00:00:00 2001 From: Evgeny Gorbovoy Date: Sat, 30 Jul 2022 17:16:16 +0200 Subject: [PATCH 10/12] + more `ContainsExclusive` for nodes --- .../Rendering/SceneGraph/ExperimentalAcrylicNode.cs | 2 +- src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs | 2 +- src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs index 59ebcf5109..12b67105e9 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs @@ -83,7 +83,7 @@ namespace Avalonia.Rendering.SceneGraph if (Material != null) { var rect = Rect.Rect; - return rect.Contains(p); + return rect.ContainsExclusive(p); } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs index 9199611ed6..1f58111ecf 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs @@ -73,6 +73,6 @@ namespace Avalonia.Rendering.SceneGraph } /// - public override bool HitTest(Point p) => Bounds.Contains(p); + public override bool HitTest(Point p) => Bounds.ContainsExclusive(p); } } diff --git a/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs index 23267166a5..339881e675 100644 --- a/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs +++ b/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs @@ -109,7 +109,7 @@ namespace Avalonia.Rendering.SceneGraph } /// - public override bool HitTest(Point p) => Bounds.Contains(p); + public override bool HitTest(Point p) => Bounds.ContainsExclusive(p); public override void Dispose() { From 86265f49aa8c9b13d2e420f505a65ad9df16f5b2 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sat, 30 Jul 2022 16:03:48 -0400 Subject: [PATCH 11/12] Update samples/ControlCatalog/App.xaml.cs --- samples/ControlCatalog/App.xaml.cs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/samples/ControlCatalog/App.xaml.cs b/samples/ControlCatalog/App.xaml.cs index a5535ea52d..7ebb87094a 100644 --- a/samples/ControlCatalog/App.xaml.cs +++ b/samples/ControlCatalog/App.xaml.cs @@ -78,12 +78,9 @@ namespace ControlCatalog public override void Initialize() { - Styles.Insert(0, DefaultLight); - Styles.Insert(1, ColorPickerDefault); - Styles.Insert(2, DataGridDefault); - //Styles.Insert(0, Fluent); - //Styles.Insert(1, ColorPickerFluent); - //Styles.Insert(2, DataGridFluent); + Styles.Insert(0, Fluent); + Styles.Insert(1, ColorPickerFluent); + Styles.Insert(2, DataGridFluent); AvaloniaXamlLoader.Load(this); } From 33931e99bb9222339b50994b514f960d4b3c34b2 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Sat, 30 Jul 2022 23:57:00 -0400 Subject: [PATCH 12/12] Fix unit tests --- tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs index 0bb6c01041..29148e6f2e 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs @@ -466,7 +466,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml var xaml = @" - + "; var styles = AvaloniaRuntimeXamlLoader.Parse(xaml);