From a08f00d78fb22ea78905b703aefb1d02e3bb7124 Mon Sep 17 00:00:00 2001 From: Maksym Katsydan Date: Tue, 30 Jun 2020 20:21:18 -0400 Subject: [PATCH 1/6] Update ComboBox selected and focus styles --- src/Avalonia.Themes.Fluent/ComboBox.xaml | 191 +++++++++++-------- src/Avalonia.Themes.Fluent/ComboBoxItem.xaml | 70 +++++-- 2 files changed, 161 insertions(+), 100 deletions(-) diff --git a/src/Avalonia.Themes.Fluent/ComboBox.xaml b/src/Avalonia.Themes.Fluent/ComboBox.xaml index 1fc657c1a3..8cac89f156 100644 --- a/src/Avalonia.Themes.Fluent/ComboBox.xaml +++ b/src/Avalonia.Themes.Fluent/ComboBox.xaml @@ -1,4 +1,5 @@ - + @@ -25,6 +26,7 @@ - + + + - + - + - + - - + + + + - + - + + - + + diff --git a/src/Avalonia.Themes.Fluent/ComboBoxItem.xaml b/src/Avalonia.Themes.Fluent/ComboBoxItem.xaml index c26dec3d34..66ccea99b5 100644 --- a/src/Avalonia.Themes.Fluent/ComboBoxItem.xaml +++ b/src/Avalonia.Themes.Fluent/ComboBoxItem.xaml @@ -1,17 +1,19 @@ - - + + Item 1 - Item 2 - - - - Item 1 - Item 2 - - + Item 2 long + Item 3 + Item 4 + + @@ -19,12 +21,11 @@ - - + Padding="{TemplateBinding Padding}" /> + + + + + + + + - + - From 82bd3564a5de5db3f02a72d14d1679b42f482fc3 Mon Sep 17 00:00:00 2001 From: Maksym Katsydan Date: Tue, 30 Jun 2020 22:53:11 -0400 Subject: [PATCH 2/6] ComboBox: add focusvisual pseudoclass to replace focus adorner --- src/Avalonia.Controls/ComboBox.cs | 15 +++++++++++++++ src/Avalonia.Themes.Fluent/ComboBox.xaml | 8 ++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Controls/ComboBox.cs b/src/Avalonia.Controls/ComboBox.cs index 6557346b1f..5fdc19ed05 100644 --- a/src/Avalonia.Controls/ComboBox.cs +++ b/src/Avalonia.Controls/ComboBox.cs @@ -262,6 +262,21 @@ namespace Avalonia.Controls _popup.Closed += PopupClosed; } + protected override void OnGotFocus(GotFocusEventArgs e) + { + if (e.NavigationMethod == NavigationMethod.Tab + || e.NavigationMethod == NavigationMethod.Directional) + { + PseudoClasses.Set(":focusvisual", true); + } + } + + protected override void OnLostFocus(RoutedEventArgs e) + { + base.OnLostFocus(e); + PseudoClasses.Set(":focusvisual", false); + } + /// /// Called when the ComboBox popup is closed, with the /// that caused the popup to close. diff --git a/src/Avalonia.Themes.Fluent/ComboBox.xaml b/src/Avalonia.Themes.Fluent/ComboBox.xaml index 8cac89f156..7ece004530 100644 --- a/src/Avalonia.Themes.Fluent/ComboBox.xaml +++ b/src/Avalonia.Themes.Fluent/ComboBox.xaml @@ -191,20 +191,20 @@ - - - - From 300a6952d125911c8e77ee9d3e59b0d8f5f16fc8 Mon Sep 17 00:00:00 2001 From: Maksym Katsydan Date: Wed, 1 Jul 2020 16:34:49 -0400 Subject: [PATCH 3/6] Use focus-visible instead of custom focusvisual --- src/Avalonia.Controls/ComboBox.cs | 15 --------------- src/Avalonia.Themes.Fluent/ComboBox.xaml | 12 ++++++------ 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/src/Avalonia.Controls/ComboBox.cs b/src/Avalonia.Controls/ComboBox.cs index 5fdc19ed05..6557346b1f 100644 --- a/src/Avalonia.Controls/ComboBox.cs +++ b/src/Avalonia.Controls/ComboBox.cs @@ -262,21 +262,6 @@ namespace Avalonia.Controls _popup.Closed += PopupClosed; } - protected override void OnGotFocus(GotFocusEventArgs e) - { - if (e.NavigationMethod == NavigationMethod.Tab - || e.NavigationMethod == NavigationMethod.Directional) - { - PseudoClasses.Set(":focusvisual", true); - } - } - - protected override void OnLostFocus(RoutedEventArgs e) - { - base.OnLostFocus(e); - PseudoClasses.Set(":focusvisual", false); - } - /// /// Called when the ComboBox popup is closed, with the /// that caused the popup to close. diff --git a/src/Avalonia.Themes.Fluent/ComboBox.xaml b/src/Avalonia.Themes.Fluent/ComboBox.xaml index 7ece004530..e996453b2e 100644 --- a/src/Avalonia.Themes.Fluent/ComboBox.xaml +++ b/src/Avalonia.Themes.Fluent/ComboBox.xaml @@ -191,20 +191,20 @@ - - - - @@ -214,7 +214,7 @@