diff --git a/src/MaterialDesignThemes.Wpf/Converters/FloatingHintInitialHorizontalOffsetConverter.cs b/src/MaterialDesignThemes.Wpf/Converters/FloatingHintInitialHorizontalOffsetConverter.cs index bb1d5a4c88..c9bf535f65 100644 --- a/src/MaterialDesignThemes.Wpf/Converters/FloatingHintInitialHorizontalOffsetConverter.cs +++ b/src/MaterialDesignThemes.Wpf/Converters/FloatingHintInitialHorizontalOffsetConverter.cs @@ -19,7 +19,8 @@ public class FloatingHintInitialHorizontalOffsetConverter : IMultiValueConverter PrefixSuffixVisibility suffixVisibility, PrefixSuffixHintBehavior prefixHintBehavior, PrefixSuffixHintBehavior suffixHintBehavior, - HorizontalAlignment horizontalContentAlignment + HorizontalAlignment horizontalContentAlignment, + bool isEditable, ]) { return 0; @@ -37,8 +38,11 @@ double GetLeftOffset() return prefixVisibility switch { PrefixSuffixVisibility.WhenFocusedOrNonEmpty - when prefixHintBehavior == PrefixSuffixHintBehavior.AlignWithText => + when prefixHintBehavior == PrefixSuffixHintBehavior.AlignWithText && isEditable => prefixWidth + prefixMargin.Right, + PrefixSuffixVisibility.WhenFocusedOrNonEmpty + when prefixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix && !isEditable => + -(prefixWidth + prefixMargin.Right), PrefixSuffixVisibility.Always when prefixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix => -(prefixWidth + prefixMargin.Right), @@ -51,8 +55,11 @@ double GetRightOffset() return suffixVisibility switch { PrefixSuffixVisibility.WhenFocusedOrNonEmpty - when suffixHintBehavior == PrefixSuffixHintBehavior.AlignWithText => + when suffixHintBehavior == PrefixSuffixHintBehavior.AlignWithText && isEditable => -(suffixWidth + suffixMargin.Left), + PrefixSuffixVisibility.WhenFocusedOrNonEmpty + when suffixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix && !isEditable => + suffixWidth + suffixMargin.Left, PrefixSuffixVisibility.Always when suffixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix => suffixWidth + suffixMargin.Left, diff --git a/src/MaterialDesignThemes.Wpf/SmartHint.cs b/src/MaterialDesignThemes.Wpf/SmartHint.cs index c69eba8aac..41c8245531 100644 --- a/src/MaterialDesignThemes.Wpf/SmartHint.cs +++ b/src/MaterialDesignThemes.Wpf/SmartHint.cs @@ -258,7 +258,7 @@ private void RefreshState(bool useTransitions) string state = string.Empty; bool isEmpty = proxy.IsEmpty(); - bool isFocused = proxy.IsFocused(); + bool isFocused = HintHost?.IsKeyboardFocusWithin ?? proxy.IsFocused(); if (UseFloating) state = !isEmpty || isFocused ? HintFloatingPositionName : HintRestingPositionName; diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.AutoSuggestBox.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.AutoSuggestBox.xaml index a8f8f1123f..ece9dd79f4 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.AutoSuggestBox.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.AutoSuggestBox.xaml @@ -71,29 +71,29 @@ + VerticalAlignment="Stretch" + Background="{DynamicResource MaterialDesign.Brush.TextBox.HoverBackground}" + CornerRadius="{TemplateBinding wpf:TextFieldAssist.TextFieldCornerRadius}" + RenderTransformOrigin="0.5,0.5" + Visibility="{TemplateBinding wpf:TextFieldAssist.RippleOnFocusEnabled, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}"> + Padding="{TemplateBinding Padding}" + wpf:BottomDashedLineAdorner.Brush="{TemplateBinding BorderBrush}" + wpf:BottomDashedLineAdorner.Thickness="{Binding RelativeSource={RelativeSource Self}, Path=BorderThickness}" + Background="{TemplateBinding Background}" + BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}" + CornerRadius="{TemplateBinding wpf:TextFieldAssist.TextFieldCornerRadius}" + SnapsToDevicePixels="True"> + MinHeight="16" + VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> @@ -104,32 +104,14 @@ - - - - - - - - - - - - + Grid.Column="0" + Width="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}" + Height="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}" + Margin="0,0,6,0" + VerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}" + Kind="{TemplateBinding wpf:TextFieldAssist.LeadingIcon}" + Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" + Visibility="{TemplateBinding wpf:TextFieldAssist.HasLeadingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" /> + @@ -191,20 +174,38 @@ + Background="{TemplateBinding wpf:HintAssist.Background}" + CornerRadius="2"> + + + + + + + + + + + + + Grid.Column="3" + Margin="2,0,0,0" + VerticalAlignment="Center" + FontSize="{TemplateBinding FontSize}" + Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" + Text="{TemplateBinding wpf:TextFieldAssist.SuffixText}"> @@ -288,11 +289,10 @@ CornerRadius="{TemplateBinding wpf:TextFieldAssist.UnderlineCornerRadius}" Visibility="{TemplateBinding wpf:TextFieldAssist.DecorationVisibility}" /> - + + Padding="{TemplateBinding Padding, Converter={StaticResource HelperTextMarginConverter}}" + Width="{Binding ActualWidth, ElementName=OuterBorder}"> diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ComboBox.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ComboBox.xaml index 7e0a333041..7b8c0f0fbf 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ComboBox.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.ComboBox.xaml @@ -416,6 +416,7 @@ + diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PasswordBox.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PasswordBox.xaml index ff3b415b4f..d6745207d8 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PasswordBox.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.PasswordBox.xaml @@ -216,6 +216,7 @@ + @@ -836,6 +837,7 @@ + diff --git a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TextBox.xaml b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TextBox.xaml index a20c25196a..52372c0272 100644 --- a/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TextBox.xaml +++ b/src/MaterialDesignThemes.Wpf/Themes/MaterialDesignTheme.TextBox.xaml @@ -151,24 +151,6 @@ Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Visibility="{TemplateBinding wpf:TextFieldAssist.HasLeadingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" /> - - - - - - - - - - - - + @@ -236,6 +219,24 @@ + + + + + + + + + + + +