Skip to content

Commit 32e2584

Browse files
[SmartHint] Fix minor UI jump (#3768)
* Add TextBox.IsReadOnly option to "fields line up" demo pages * Add extra condition in converter to avoid minor UI jump
1 parent 17d5e27 commit 32e2584

File tree

5 files changed

+8
-2
lines changed

5 files changed

+8
-2
lines changed

src/MainDemo.Wpf/FieldsLineUp.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@
108108
<CheckBox x:Name="IsEnabledCheckBox"
109109
Content="IsEnabled"
110110
IsChecked="True" />
111+
<CheckBox x:Name="IsReadOnlyCheckBox" Content="TextBox.IsReadOnly" />
111112
<CheckBox x:Name="HasClearButtonCheckBox" Content="TextFieldAssist.HasClearButton" />
112113
<CheckBox x:Name="IsEditableCheckBox" Content="ComboBox.IsEditable" />
113114
</StackPanel>

src/MainDemo.Wpf/FieldsLineUp.xaml.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ public FieldsLineUp()
5252
control.Margin = new Thickness(2, 10, 2, 10);
5353
if (control is ComboBox comboBox)
5454
comboBox.SetBinding(ComboBox.IsEditableProperty, new Binding(nameof(CheckBox.IsChecked)) { ElementName = nameof(IsEditableCheckBox) });
55+
if (control is TextBoxBase tb)
56+
tb.SetBinding(TextBoxBase.IsReadOnlyProperty, new Binding(nameof(CheckBox.IsChecked)) { ElementName = nameof(IsReadOnlyCheckBox) });
5557
SetValue(control);
5658
}
5759
}

src/MaterialDesign3.Demo.Wpf/FieldsLineUp.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
<CheckBox x:Name="IsEnabledCheckBox"
9898
Content="IsEnabled"
9999
IsChecked="True" />
100+
<CheckBox x:Name="IsReadOnlyCheckBox" Content="TextBox.IsReadOnly" />
100101
<CheckBox x:Name="HasClearButtonCheckBox" Content="TextFieldAssist.HasClearButton" />
101102
<CheckBox x:Name="IsEditableCheckBox" Content="ComboBox.IsEditable" />
102103
</StackPanel>

src/MaterialDesign3.Demo.Wpf/FieldsLineUp.xaml.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ public FieldsLineUp()
5252
control.Margin = new Thickness(2, 10, 2, 10);
5353
if (control is ComboBox comboBox)
5454
comboBox.SetBinding(ComboBox.IsEditableProperty, new Binding(nameof(CheckBox.IsChecked)) { ElementName = nameof(IsEditableCheckBox) });
55+
if (control is TextBoxBase tb)
56+
tb.SetBinding(TextBoxBase.IsReadOnlyProperty, new Binding(nameof(CheckBox.IsChecked)) { ElementName = nameof(IsReadOnlyCheckBox) });
5557
SetValue(control);
5658
}
5759
}

src/MaterialDesignThemes.Wpf/Converters/FloatingHintInitialHorizontalOffsetConverter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ double GetLeftOffset()
4141
when prefixHintBehavior == PrefixSuffixHintBehavior.AlignWithText && isEditable =>
4242
prefixWidth + prefixMargin.Right,
4343
PrefixSuffixVisibility.WhenFocusedOrNonEmpty
44-
when prefixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix && !isEditable =>
44+
when prefixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix && !isEditable && prefixWidth > 0 =>
4545
-(prefixWidth + prefixMargin.Right),
4646
PrefixSuffixVisibility.Always
4747
when prefixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix =>
@@ -58,7 +58,7 @@ double GetRightOffset()
5858
when suffixHintBehavior == PrefixSuffixHintBehavior.AlignWithText && isEditable =>
5959
-(suffixWidth + suffixMargin.Left),
6060
PrefixSuffixVisibility.WhenFocusedOrNonEmpty
61-
when suffixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix && !isEditable =>
61+
when suffixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix && !isEditable && suffixWidth > 0 =>
6262
suffixWidth + suffixMargin.Left,
6363
PrefixSuffixVisibility.Always
6464
when suffixHintBehavior == PrefixSuffixHintBehavior.AlignWithPrefixSuffix =>

0 commit comments

Comments
 (0)