Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix hint positioning issue when "readonly" element
The issue was present for all controls once they are in "readonly" state. Special handling of the case where the element is readonly, and the hint should follow the prefix/suffix needed to be added because of the "business rule" that prefix/suffix is always visible when the element is "readonly".
  • Loading branch information
nicolaihenriksen authored and Keboo committed Jan 10, 2025
commit 8de7db72d483d35519ed6eec6ad5f414a0ecf706
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ public class FloatingHintInitialHorizontalOffsetConverter : IMultiValueConverter
PrefixSuffixVisibility suffixVisibility,
PrefixSuffixHintBehavior prefixHintBehavior,
PrefixSuffixHintBehavior suffixHintBehavior,
HorizontalAlignment horizontalContentAlignment
HorizontalAlignment horizontalContentAlignment,
bool isEditable,
])
{
return 0;
Expand All @@ -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),
Expand All @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="IsReadOnly" Converter="{x:Static converters:InvertBooleanConverter.Instance}" />
</MultiBinding>
</wpf:SmartHint.InitialHorizontalOffset>
<wpf:SmartHint.Margin>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,7 @@
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" />
<Binding Path="IsEditable" RelativeSource="{RelativeSource TemplatedParent}" />
</MultiBinding>
</wpf:SmartHint.InitialHorizontalOffset>
<wpf:SmartHint.Margin>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" />
<Binding Source="{StaticResource TrueValue}" />
</MultiBinding>
</wpf:SmartHint.InitialHorizontalOffset>
<wpf:SmartHint.Margin>
Expand Down Expand Up @@ -836,6 +837,7 @@
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" />
<Binding Source="{StaticResource TrueValue}" />
</MultiBinding>
</wpf:SmartHint.InitialHorizontalOffset>
<wpf:SmartHint.Margin>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextHintBehavior)" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" />
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="IsReadOnly" Converter="{x:Static converters:InvertBooleanConverter.Instance}" />
</MultiBinding>
</wpf:SmartHint.InitialHorizontalOffset>
<wpf:SmartHint.Margin>
Expand Down