Skip to content

Commit c485000

Browse files
authored
Fixed ComboBox style and template (#10818)
* Fixed ComboBox style and template * Addressed PR Review comments * Addressed BorderThickness issue * Removed extra variables * Rebased the branch to use the new theme file genenration * Reintroduced ComboBox popup grouping fix #10878
1 parent b9af0a5 commit c485000

File tree

9 files changed

+1690
-858
lines changed

9 files changed

+1690
-858
lines changed

src/Microsoft.DotNet.Wpf/src/Themes/PresentationFramework.Fluent/Resources/Theme/Dark.xaml

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -468,17 +468,45 @@
468468

469469
<!-- ComboBox -->
470470
<SolidColorBrush x:Key="ComboBoxBackground" Color="{StaticResource ControlFillColorDefault}" />
471-
<SolidColorBrush x:Key="ComboBoxBackgroundFocused" Color="{StaticResource ControlFillColorDefault}" />
472471
<SolidColorBrush x:Key="ComboBoxBackgroundPointerOver" Color="{StaticResource ControlFillColorSecondary}" />
472+
<SolidColorBrush x:Key="ComboBoxBackgroundPressed" Color="{StaticResource ControlFillColorTertiary}" />
473473
<SolidColorBrush x:Key="ComboBoxBackgroundDisabled" Color="{StaticResource ControlFillColorDisabled}" />
474474
<SolidColorBrush x:Key="ComboBoxForeground" Color="{StaticResource TextFillColorPrimary}" />
475+
<SolidColorBrush x:Key="ComboBoxForegroundPointerOver" Color="{StaticResource TextFillColorPrimary}" />
476+
<SolidColorBrush x:Key="ComboBoxForegroundPressed" Color="{StaticResource TextFillColorPrimary}" />
475477
<SolidColorBrush x:Key="ComboBoxForegroundDisabled" Color="{StaticResource TextFillColorDisabled}" />
476-
<!--<SolidColorBrush x:Key="ComboBoxItemBorderBrush" Color="{StaticResource ControlElevationBorderBrush}" />-->
478+
<SolidColorBrush x:Key="ComboBoxForegroundFocused" Color="{StaticResource TextFillColorPrimary}" />
479+
<SolidColorBrush x:Key="ComboBoxForegroundFocusedPressed" Color="{StaticResource TextFillColorPrimary}" />
480+
<LinearGradientBrush x:Key="ComboBoxBorderBrush" MappingMode="Absolute" StartPoint="0,0" EndPoint="0,3">
481+
<LinearGradientBrush.GradientStops>
482+
<GradientStop Offset="0.33" Color="{StaticResource ControlStrokeColorSecondary}" />
483+
<GradientStop Offset="1.0" Color="{StaticResource ControlStrokeColorDefault}" />
484+
</LinearGradientBrush.GradientStops>
485+
</LinearGradientBrush>
486+
<LinearGradientBrush x:Key="ComboBoxBorderBrushPointerOver" MappingMode="Absolute" StartPoint="0,0" EndPoint="0,3">
487+
<LinearGradientBrush.GradientStops>
488+
<GradientStop Offset="0.33" Color="{StaticResource ControlStrokeColorSecondary}" />
489+
<GradientStop Offset="1.0" Color="{StaticResource ControlStrokeColorDefault}" />
490+
</LinearGradientBrush.GradientStops>
491+
</LinearGradientBrush>
492+
<SolidColorBrush x:Key="ComboBoxBorderBrushPressed" Color="{StaticResource ControlStrokeColorDefault}" />
477493
<SolidColorBrush x:Key="ComboBoxBorderBrushDisabled" Color="{StaticResource ControlStrokeColorDefault}" />
478-
<SolidColorBrush x:Key="ComboBoxBorderBrushFocused" Color="{StaticResource SystemAccentColorLight2}" />
479494
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForeground" Color="{StaticResource TextFillColorSecondary}" />
495+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForegroundFocused" Color="{StaticResource TextFillColorSecondary}" />
496+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForegroundFocusedPressed" Color="{StaticResource TextFillColorSecondary}" />
497+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForegroundDisabled" Color="{StaticResource TextFillColorDisabled}" />
498+
<SolidColorBrush x:Key="ComboBoxDropDownForeground" Color="{StaticResource TextFillColorPrimary}" />
480499
<SolidColorBrush x:Key="ComboBoxDropDownBackground" Color="{StaticResource AcrylicBackgroundFillColorDefault}" />
481500
<SolidColorBrush x:Key="ComboBoxDropDownBorderBrush" Color="{StaticResource SurfaceStrokeColorFlyout}" />
501+
<SolidColorBrush x:Key="ComboBoxDropDownBackgroundPointerOver" Color="{StaticResource SubtleFillColorSecondary}" />
502+
<SolidColorBrush x:Key="ComboBoxDropDownBackgroundPointerPressed" Color="{StaticResource SubtleFillColorTertiary}" />
503+
<SolidColorBrush x:Key="ComboBoxFocusedDropDownBackgroundPointerPressed" Color="{StaticResource ControlAltFillColorQuarternary}" />
504+
<SolidColorBrush x:Key="ComboBoxEditableDropDownGlyphForeground" Color="{StaticResource TextFillColorSecondary}" />
505+
506+
<!-- Deprecated ComboBox brushes -->
507+
<SolidColorBrush x:Key="ComboBoxBorderBrushFocused" Color="{StaticResource SystemAccentColorLight2}" />
508+
509+
<!--<SolidColorBrush x:Key="ComboBoxItemBorderBrush" Color="{StaticResource ControlElevationBorderBrush}" />-->
482510
<SolidColorBrush x:Key="ComboBoxItemPillFillBrush" Color="{StaticResource SystemAccentColorLight2}" />
483511
<SolidColorBrush x:Key="ComboBoxItemBackgroundSelected" Color="{StaticResource SubtleFillColorSecondary}" />
484512
<SolidColorBrush x:Key="ComboBoxItemForeground" Color="{StaticResource TextFillColorPrimary}" />

src/Microsoft.DotNet.Wpf/src/Themes/PresentationFramework.Fluent/Resources/Theme/HC.xaml

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -297,22 +297,40 @@
297297

298298
<!-- ComboBox -->
299299
<SolidColorBrush x:Key="ComboBoxBackground" Color="{StaticResource SystemColorButtonFaceColor}" />
300-
<SolidColorBrush x:Key="ComboBoxBackgroundFocused" Color="{StaticResource SystemColorHighlightTextColor}" />
301-
<SolidColorBrush x:Key="ComboBoxBackgroundPointerOver" Color="{StaticResource SystemColorHighlightTextColor}" />
302-
<SolidColorBrush x:Key="ComboBoxBackgroundDisabled" Color="{StaticResource SystemColorWindowColor}" />
300+
<SolidColorBrush x:Key="ComboBoxBackgroundPointerOver" Color="{StaticResource SystemColorWindowColor}" />
301+
<SolidColorBrush x:Key="ComboBoxBackgroundPressed" Color="{StaticResource SystemColorButtonFaceColor}" />
302+
<SolidColorBrush x:Key="ComboBoxBackgroundDisabled" Color="{StaticResource SystemColorButtonFaceColor}" />
303303
<SolidColorBrush x:Key="ComboBoxForeground" Color="{StaticResource SystemColorButtonTextColor}" />
304+
<SolidColorBrush x:Key="ComboBoxForegroundPointerOver" Color="{StaticResource SystemColorButtonTextColor}" />
305+
<SolidColorBrush x:Key="ComboBoxForegroundPressed" Color="{StaticResource SystemColorButtonTextColor}" />
304306
<SolidColorBrush x:Key="ComboBoxForegroundDisabled" Color="{StaticResource SystemColorGrayTextColor}" />
307+
<SolidColorBrush x:Key="ComboBoxForegroundFocused" Color="{StaticResource SystemColorButtonTextColor}" />
308+
<SolidColorBrush x:Key="ComboBoxForegroundFocusedPressed" Color="{StaticResource SystemColorButtonTextColor}" />
309+
<SolidColorBrush x:Key="ComboBoxBorderBrush" Color="{StaticResource SystemColorButtonTextColor}" />
310+
<SolidColorBrush x:Key="ComboBoxBorderBrushPointerOver" Color="{StaticResource SystemColorHighlightColor}" />
311+
<SolidColorBrush x:Key="ComboBoxBorderBrushPressed" Color="{StaticResource SystemColorHighlightColor}" />
312+
<SolidColorBrush x:Key="ComboBoxBorderBrushDisabled" Color="{StaticResource SystemColorGrayTextColor}" />
313+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForeground" Color="{StaticResource SystemColorButtonTextColor}" />
314+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForegroundFocused" Color="{StaticResource SystemColorButtonTextColor}" />
315+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForegroundFocusedPressed" Color="{StaticResource SystemColorButtonTextColor}" />
316+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForegroundDisabled" Color="{StaticResource SystemColorGrayTextColor}" />
317+
<SolidColorBrush x:Key="ComboBoxDropDownForeground" Color="{StaticResource SystemColorButtonTextColor}" />
318+
<SolidColorBrush x:Key="ComboBoxDropDownBackground" Color="{StaticResource SystemColorButtonFaceColor}" />
319+
<SolidColorBrush x:Key="ComboBoxDropDownBorderBrush" Color="{StaticResource SystemColorButtonTextColor}" />
320+
<SolidColorBrush x:Key="ComboBoxDropDownBackgroundPointerOver" Color="{StaticResource SystemColorWindowColor}" />
321+
<SolidColorBrush x:Key="ComboBoxDropDownBackgroundPointerPressed" Color="{StaticResource SystemColorButtonFaceColor}" />
322+
<SolidColorBrush x:Key="ComboBoxFocusedDropDownBackgroundPointerPressed" Color="{StaticResource SystemColorButtonFaceColor}" />
323+
<SolidColorBrush x:Key="ComboBoxEditableDropDownGlyphForeground" Color="{StaticResource SystemColorButtonTextColor}" />
324+
325+
<!-- Deprecated ComboBox brushes -->
326+
<SolidColorBrush x:Key="ComboBoxBorderBrushFocused" Color="{StaticResource SystemColorHighlightTextColor}" />
327+
305328
<!--<SolidColorBrush x:Key="ComboBoxItemBorderBrush" Color="{StaticResource ControlElevationBorderBrush}" />-->
306-
<SolidColorBrush x:Key="ComboBoxBorderBrushDisabled" Color="{StaticResource SystemColorWindowColor}" />
307-
<SolidColorBrush x:Key="ComboBoxBorderBrushFocused" Color="{StaticResource SystemColorHighlightTextColor}" />
308-
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForeground" Color="{StaticResource SystemColorGrayTextColor}" />
309-
<SolidColorBrush x:Key="ComboBoxDropDownBackground" Color="{StaticResource SystemColorWindowColor}" />
310-
<SolidColorBrush x:Key="ComboBoxDropDownBorderBrush" Color="{StaticResource SystemColorWindowTextColor}" />
311329
<SolidColorBrush x:Key="ComboBoxItemPillFillBrush" Color="{StaticResource SystemColorHighlightColor}" />
312330
<SolidColorBrush x:Key="ComboBoxItemBackgroundSelected" Color="{StaticResource SystemColorWindowColor}" />
313331
<SolidColorBrush x:Key="ComboBoxItemForeground" Color="{StaticResource SystemColorButtonTextColor}" />
314332
<SolidColorBrush x:Key="ComboBoxItemForegroundSelected" Color="{StaticResource SystemColorHighlightColor}" />
315-
333+
316334
<!-- ContentDialog -->
317335
<SolidColorBrush
318336
x:Key="ContentDialogSmokeFill"

src/Microsoft.DotNet.Wpf/src/Themes/PresentationFramework.Fluent/Resources/Theme/Light.xaml

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -477,22 +477,57 @@
477477

478478
<!-- ComboBox -->
479479
<SolidColorBrush x:Key="ComboBoxBackground" Color="{StaticResource ControlFillColorDefault}" />
480-
<SolidColorBrush x:Key="ComboBoxBackgroundFocused" Color="{StaticResource ControlFillColorDefault}" />
481480
<SolidColorBrush x:Key="ComboBoxBackgroundPointerOver" Color="{StaticResource ControlFillColorSecondary}" />
481+
<SolidColorBrush x:Key="ComboBoxBackgroundPressed" Color="{StaticResource ControlFillColorTertiary}" />
482482
<SolidColorBrush x:Key="ComboBoxBackgroundDisabled" Color="{StaticResource ControlFillColorDisabled}" />
483483
<SolidColorBrush x:Key="ComboBoxForeground" Color="{StaticResource TextFillColorPrimary}" />
484+
<SolidColorBrush x:Key="ComboBoxForegroundPointerOver" Color="{StaticResource TextFillColorPrimary}" />
485+
<SolidColorBrush x:Key="ComboBoxForegroundPressed" Color="{StaticResource TextFillColorPrimary}" />
484486
<SolidColorBrush x:Key="ComboBoxForegroundDisabled" Color="{StaticResource TextFillColorDisabled}" />
485-
<!--<SolidColorBrush x:Key="ComboBoxItemBorderBrush" Color="{StaticResource ControlElevationBorderBrush}" />-->
487+
<SolidColorBrush x:Key="ComboBoxForegroundFocused" Color="{StaticResource TextFillColorPrimary}" />
488+
<SolidColorBrush x:Key="ComboBoxForegroundFocusedPressed" Color="{StaticResource TextFillColorPrimary}" />
489+
<LinearGradientBrush x:Key="ComboBoxBorderBrush" MappingMode="Absolute" StartPoint="0,0" EndPoint="0,3">
490+
<LinearGradientBrush.RelativeTransform>
491+
<ScaleTransform ScaleY="-1" CenterY="0.5" />
492+
</LinearGradientBrush.RelativeTransform>
493+
<LinearGradientBrush.GradientStops>
494+
<GradientStop Offset="0.33" Color="{StaticResource ControlStrokeColorSecondary}" />
495+
<GradientStop Offset="1.0" Color="{StaticResource ControlStrokeColorDefault}" />
496+
</LinearGradientBrush.GradientStops>
497+
</LinearGradientBrush>
498+
<LinearGradientBrush x:Key="ComboBoxBorderBrushPointerOver" MappingMode="Absolute" StartPoint="0,0" EndPoint="0,3">
499+
<LinearGradientBrush.RelativeTransform>
500+
<ScaleTransform ScaleY="-1" CenterY="0.5" />
501+
</LinearGradientBrush.RelativeTransform>
502+
<LinearGradientBrush.GradientStops>
503+
<GradientStop Offset="0.33" Color="{StaticResource ControlStrokeColorSecondary}" />
504+
<GradientStop Offset="1.0" Color="{StaticResource ControlStrokeColorDefault}" />
505+
</LinearGradientBrush.GradientStops>
506+
</LinearGradientBrush>
507+
<SolidColorBrush x:Key="ComboBoxBorderBrushPressed" Color="{StaticResource ControlStrokeColorDefault}" />
486508
<SolidColorBrush x:Key="ComboBoxBorderBrushDisabled" Color="{StaticResource ControlStrokeColorDefault}" />
487-
<SolidColorBrush x:Key="ComboBoxBorderBrushFocused" Color="{StaticResource SystemAccentColorDark1}" />
488-
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForeground" Color="{StaticResource TextFillColorPrimary}" />
509+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForeground" Color="{StaticResource TextFillColorSecondary}" />
510+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForegroundFocused" Color="{StaticResource TextFillColorSecondary}" />
511+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForegroundFocusedPressed" Color="{StaticResource TextFillColorSecondary}" />
512+
<SolidColorBrush x:Key="ComboBoxDropDownGlyphForegroundDisabled" Color="{StaticResource TextFillColorDisabled}" />
513+
<SolidColorBrush x:Key="ComboBoxDropDownForeground" Color="{StaticResource TextFillColorPrimary}" />
489514
<SolidColorBrush x:Key="ComboBoxDropDownBackground" Color="{StaticResource AcrylicBackgroundFillColorDefault}" />
490515
<SolidColorBrush x:Key="ComboBoxDropDownBorderBrush" Color="{StaticResource SurfaceStrokeColorFlyout}" />
516+
<SolidColorBrush x:Key="ComboBoxDropDownBackgroundPointerOver" Color="{StaticResource SubtleFillColorSecondary}" />
517+
<SolidColorBrush x:Key="ComboBoxDropDownBackgroundPointerPressed" Color="{StaticResource SubtleFillColorTertiary}" />
518+
<SolidColorBrush x:Key="ComboBoxFocusedDropDownBackgroundPointerPressed" Color="{StaticResource ControlAltFillColorQuarternary}" />
519+
<SolidColorBrush x:Key="ComboBoxEditableDropDownGlyphForeground" Color="{StaticResource TextFillColorSecondary}" />
520+
521+
<!-- Deprecated ComboBox Brushes -->
522+
<SolidColorBrush x:Key="ComboBoxBorderBrushFocused" Color="{StaticResource SystemAccentColorDark1}" />
523+
524+
<!--<SolidColorBrush x:Key="ComboBoxItemBorderBrush" Color="{StaticResource ControlElevationBorderBrush}" />-->
491525
<SolidColorBrush x:Key="ComboBoxItemPillFillBrush" Color="{StaticResource SystemAccentColorDark1}" />
492526
<SolidColorBrush x:Key="ComboBoxItemBackgroundSelected" Color="{StaticResource SubtleFillColorSecondary}" />
493527
<SolidColorBrush x:Key="ComboBoxItemForeground" Color="{StaticResource TextFillColorPrimary}" />
494528
<SolidColorBrush x:Key="ComboBoxItemForegroundSelected" Color="{StaticResource TextFillColorPrimary}" />
495529

530+
496531
<!-- ContentDialog -->
497532
<SolidColorBrush x:Key="ContentDialogSmokeFill" Color="{StaticResource SmokeFillColorDefault}" />
498533
<SolidColorBrush x:Key="ContentDialogBackground" Color="{StaticResource SolidBackgroundFillColorBase}" />

src/Microsoft.DotNet.Wpf/src/Themes/PresentationFramework.Fluent/Resources/Variables.xaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
If a copy of the MIT was not distributed with this file, You can obtain one at https://opensource.org/licenses/MIT.
44
Copyright (C) Leszek Pomianowski and WPF UI Contributors.
55
All Rights Reserved.
6-
76
Based on Microsoft XAML for Win UI
87
Copyright (c) Microsoft Corporation. All Rights Reserved.
98
-->
@@ -43,11 +42,9 @@
4342
<Thickness x:Key="TimePickerHostPadding">0,1,0,2</Thickness>
4443
<Thickness x:Key="DatePickerHostPadding">0,1,0,2</Thickness>
4544
<Thickness x:Key="DatePickerHostMonthPadding">9,0,0,1</Thickness>
46-
<Thickness x:Key="ComboBoxEditableTextPadding">10,0,30,0</Thickness>
4745
<Thickness x:Key="TextControlErrorBorderPadding">1</Thickness>
4846

4947
<system:Double x:Key="ComboBoxMinHeight">24</system:Double>
50-
<!-- <Thickness x:Key="ComboBoxPadding">12,1,0,3</Thickness> -->
5148
<system:Double x:Key="NavigationViewItemOnLeftMinHeight">32</system:Double>
5249

5350
</ResourceDictionary>

0 commit comments

Comments
 (0)