Skip to content

Commit c0ac296

Browse files
Fix smart hint resting opacity and (input control) enabled/disabled state (#3575)
* Fix TextBox style * Fix PasswordBox styles * Fix ComboBox style * Fix TimePicker style * Fix DatePicker style * Fix DatePicker disabled state alignment issue (IsReadOnly toggle)
1 parent 1fefc9b commit c0ac296

File tree

5 files changed

+78
-90
lines changed

5 files changed

+78
-90
lines changed

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ComboBox.xaml

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@
233233
HorizontalAlignment="Right"
234234
VerticalAlignment="Center"
235235
Data="M7,10L12,15L17,10H7Z"
236-
Fill="{TemplateBinding BorderBrush}"
236+
Fill="{TemplateBinding Foreground}"
237237
RenderTransformOrigin="0.5,0.5"
238238
Stretch="Uniform" />
239239
</Border>
@@ -318,7 +318,9 @@
318318
<ColumnDefinition Width="0" MinWidth="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" />
319319
</Grid.ColumnDefinitions>
320320
<ToggleButton x:Name="toggleButton"
321+
Foreground="{TemplateBinding Foreground}"
321322
Grid.ColumnSpan="2"
323+
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
322324
Padding="{TemplateBinding Padding}"
323325
VerticalContentAlignment="Center"
324326
BorderBrush="{TemplateBinding BorderBrush}"
@@ -476,9 +478,11 @@
476478
<Button x:Name="PART_ClearButton"
477479
Grid.Column="5"
478480
Height="Auto"
481+
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
479482
Padding="2,0,0,0"
480483
Command="{x:Static internal:ClearText.ClearCommand}"
481484
Focusable="False"
485+
Foreground="{TemplateBinding Foreground}"
482486
VerticalAlignment="Center"
483487
Style="{StaticResource MaterialDesignToolButton}">
484488
<Button.Visibility>
@@ -576,7 +580,6 @@
576580

577581
<!-- Outlined combo box -->
578582
<Trigger Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True">
579-
<Setter TargetName="HintWrapper" Property="Opacity" Value="{Binding Path=(wpf:HintAssist.HintOpacity), RelativeSource={RelativeSource TemplatedParent}}" />
580583
<Setter TargetName="PART_Popup" Property="ContentMargin" Value="6,0,6,6" />
581584
<Setter TargetName="PART_Popup" Property="ContentMinWidth" Value="{Binding Path=ActualWidth, ElementName=OuterBorder}" />
582585
<Setter TargetName="PART_Popup" Property="CornerRadius" Value="{Binding Path=(wpf:TextFieldAssist.TextFieldCornerRadius), RelativeSource={RelativeSource TemplatedParent}}" />
@@ -601,14 +604,19 @@
601604
</MultiTrigger>
602605

603606
<!-- Floating hint -->
604-
<Trigger Property="wpf:HintAssist.IsFloating" Value="True">
607+
<MultiTrigger>
608+
<MultiTrigger.Conditions>
609+
<Condition Property="wpf:HintAssist.IsFloating" Value="True" />
610+
<Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" />
611+
</MultiTrigger.Conditions>
605612
<Setter TargetName="Hint" Property="HintOpacity" Value="1" />
606-
</Trigger>
613+
</MultiTrigger>
607614
<MultiTrigger>
608615
<MultiTrigger.Conditions>
609616
<Condition Property="wpf:HintAssist.IsFloating" Value="True" />
610617
<Condition Property="IsKeyboardFocusWithin" Value="True" />
611618
</MultiTrigger.Conditions>
619+
<Setter TargetName="Hint" Property="HintOpacity" Value="1" />
612620
<Setter TargetName="Hint" Property="Foreground" Value="{Binding Path=(wpf:HintAssist.Foreground), RelativeSource={RelativeSource TemplatedParent}}" />
613621
</MultiTrigger>
614622

@@ -622,26 +630,23 @@
622630
<Setter TargetName="OuterBorder" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" />
623631
<Setter TargetName="OuterBorder" Property="wpf:BottomDashedLineAdorner.IsAttached" Value="True" />
624632
<Setter TargetName="OuterBorder" Property="wpf:BottomDashedLineAdorner.DashStyle" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:TextFieldAssist.HasFilledTextField), Converter={StaticResource BooleanToDashStyleConverter}}" />
633+
<Setter TargetName="toggleButton" Property="Opacity" Value="1" />
625634
</MultiTrigger>
626635
<MultiTrigger>
627636
<MultiTrigger.Conditions>
628637
<Condition Property="IsEnabled" Value="False" />
629638
<Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" />
630639
</MultiTrigger.Conditions>
631640
<Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ComboBox.OutlineInactiveBorder}" />
632-
<Setter TargetName="HintWrapper" Property="Opacity">
633-
<Setter.Value>
634-
<Binding Converter="{StaticResource MathMultiplyConverter}"
635-
ConverterParameter="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}"
636-
Path="(wpf:HintAssist.HintOpacity)"
637-
RelativeSource="{RelativeSource TemplatedParent}" />
638-
</Setter.Value>
639-
</Setter>
640-
<Setter TargetName="PART_ClearButton" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" />
641-
<Setter TargetName="PART_EditableTextBox" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" />
642-
<Setter TargetName="PrefixTextBlock" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" />
643-
<Setter TargetName="SuffixTextBlock" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" />
641+
<Setter TargetName="HintWrapper" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" />
642+
<Setter TargetName="PART_ClearButton" Property="Opacity" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:HintAssist.HintOpacity), Converter={StaticResource MathMultiplyConverter}, ConverterParameter={x:Static wpf:Constants.TextBoxNotEnabledOpacity}}" />
643+
<Setter TargetName="LeadingPackIcon" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" />
644+
<Setter TargetName="PrefixTextBlock" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" />
645+
<Setter TargetName="SuffixTextBlock" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" />
646+
<Setter TargetName="TrailingPackIcon" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" />
644647
<Setter TargetName="contentPresenter" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" />
648+
<Setter TargetName="PART_EditableTextBox" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" />
649+
<Setter TargetName="toggleButton" Property="Opacity" Value="1" />
645650
</MultiTrigger>
646651

647652
<!-- IsKeyboardFocused -->

src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.DatePicker.xaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
FixedLeft="0" />
4040
<converters:NonDefaultThicknessConverter x:Key="OutlinedBorderInactiveThicknessConverter" DefaultThickness="{x:Static wpf:Constants.DefaultOutlinedBorderInactiveThickness}" />
4141
<converters:NonDefaultThicknessConverter x:Key="OutlinedBorderActiveThicknessConverter" DefaultThickness="{x:Static wpf:Constants.DefaultOutlinedBorderActiveThickness}" />
42+
<converters:MathConverter x:Key="MathMultiplyConverter" Operation="Multiply" />
4243

4344
<ControlTemplate x:Key="CalendarButtonTemplate" TargetType="{x:Type Button}">
4445
<wpf:PackIcon VerticalAlignment="Center"
@@ -111,7 +112,8 @@
111112
HorizontalAlignment="Right"
112113
VerticalAlignment="Center"
113114
Focusable="False"
114-
Foreground="{TemplateBinding BorderBrush}"
115+
Foreground="{Binding ElementName=PART_TextBox, Path=Foreground}"
116+
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
115117
Template="{StaticResource CalendarButtonTemplate}" />
116118
<Popup x:Name="PART_Popup"
117119
AllowsTransparency="True"
@@ -131,7 +133,8 @@
131133
<Setter TargetName="PART_Button" Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary}" />
132134
</MultiTrigger>
133135
<Trigger Property="IsEnabled" Value="False">
134-
<Setter TargetName="PART_Button" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" />
136+
<Setter TargetName="PART_Button" Property="Opacity" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:HintAssist.HintOpacity), Converter={StaticResource MathMultiplyConverter}, ConverterParameter={x:Static wpf:Constants.TextBoxNotEnabledOpacity}}" />
137+
<Setter TargetName="PART_TextBox" Property="IsReadOnly" Value="False" />
135138
</Trigger>
136139

137140
<!-- Validation.HasError -->

0 commit comments

Comments
 (0)