Skip to content

Commit 0f80270

Browse files
committed
Fix TextBox horizontal scrollbar position when VerticalContentAlignment is set to Top
1 parent e5d0c3d commit 0f80270

File tree

4 files changed

+9
-35
lines changed

4 files changed

+9
-35
lines changed

src/MainDemo.Wpf/Fields.xaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -340,12 +340,14 @@
340340

341341
<TextBox Height="100"
342342
VerticalAlignment="Top"
343+
VerticalContentAlignment="Top"
343344
materialDesign:HintAssist.Hint="This is a text area"
344345
AcceptsReturn="True"
345346
IsEnabled="{Binding Path=IsChecked, ElementName=MaterialDesignOutlinedTextBoxEnabledComboBox}"
346347
Style="{StaticResource MaterialDesignOutlinedTextBox}"
347-
TextWrapping="Wrap"
348-
VerticalScrollBarVisibility="Auto" />
348+
TextWrapping="NoWrap"
349+
VerticalScrollBarVisibility="Auto"
350+
HorizontalScrollBarVisibility="Auto" />
349351
</StackPanel>
350352
</smtx:XamlDisplay>
351353

src/MaterialDesignThemes.Wpf/Converters/VerticalAlignmentConverter.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
namespace MaterialDesignThemes.Wpf.Converters;
55

6-
[Obsolete("This class is obsolete and will be removed in a future version.")]
76
public class VerticalAlignmentConverter : IValueConverter
87
{
98
public VerticalAlignment StretchReplacement { get; set; } = VerticalAlignment.Top;

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
<Style.Resources>
4444
<convertersInternal:TextFieldClearButtonVisibilityConverter x:Key="ClearButtonVisibilityConverter" ContentEmptyVisibility="Collapsed" />
4545
<converters:TextFieldPrefixTextVisibilityConverter x:Key="PrefixSuffixTextVisibilityConverter" HiddenState="Collapsed" />
46+
<converters:VerticalAlignmentConverter x:Key="PrefixSuffixTextVerticalAlignmentConverter" StretchReplacement="Center" />
4647
<converters:BooleanToDashStyleConverter x:Key="BooleanToDashStyleConverter" TrueValue="{x:Static DashStyles.Solid}" />
4748
<converters:ThicknessCloneConverter x:Key="HelperTextMarginConverter" CloneEdges="Left,Right" />
4849
<converters:MathConverter x:Key="DivisionConverter" Operation="Divide" Offset="1.5" />
@@ -133,7 +134,7 @@
133134

134135
<Grid x:Name="ContentGrid"
135136
MinHeight="16"
136-
VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
137+
VerticalAlignment="Stretch">
137138
<Grid.ColumnDefinitions>
138139
<ColumnDefinition Width="Auto" />
139140
<ColumnDefinition Width="Auto" />
@@ -156,7 +157,7 @@
156157
<ScrollViewer x:Name="PART_ContentHost"
157158
Grid.Column="2"
158159
HorizontalAlignment="Stretch"
159-
VerticalAlignment="Center"
160+
VerticalAlignment="Stretch"
160161
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
161162
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
162163
Panel.ZIndex="1"
@@ -224,7 +225,7 @@
224225
<TextBlock x:Name="PrefixTextBlock"
225226
Grid.Column="1"
226227
Margin="0,0,2,0"
227-
VerticalAlignment="Center"
228+
VerticalAlignment="{TemplateBinding VerticalContentAlignment, Converter={StaticResource PrefixSuffixTextVerticalAlignmentConverter}}"
228229
FontSize="{TemplateBinding FontSize}"
229230
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
230231
Text="{TemplateBinding wpf:TextFieldAssist.PrefixText}">
@@ -242,7 +243,7 @@
242243
<TextBlock x:Name="SuffixTextBlock"
243244
Grid.Column="3"
244245
Margin="2,0,0,0"
245-
VerticalAlignment="Center"
246+
VerticalAlignment="{TemplateBinding VerticalContentAlignment, Converter={StaticResource PrefixSuffixTextVerticalAlignmentConverter}}"
246247
FontSize="{TemplateBinding FontSize}"
247248
Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}"
248249
Text="{TemplateBinding wpf:TextFieldAssist.SuffixText}">

tests/MaterialDesignThemes.UITests/WPF/TextBoxes/TextBoxTests.cs

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -536,34 +536,6 @@ public async Task TextBox_WithHintAndValidationError_RespectsPadding(string styl
536536
recorder.Success();
537537
}
538538

539-
[Test]
540-
[Arguments(VerticalAlignment.Stretch, VerticalAlignment.Stretch)]
541-
[Arguments(VerticalAlignment.Top, VerticalAlignment.Top)]
542-
[Arguments(VerticalAlignment.Bottom, VerticalAlignment.Bottom)]
543-
[Arguments(VerticalAlignment.Center, VerticalAlignment.Center)]
544-
[Description("Issue 3161")]
545-
public async Task TextBox_MultiLineAndFixedHeight_RespectsVerticalContentAlignment(VerticalAlignment alignment, VerticalAlignment expectedFloatingHintAlignment)
546-
{
547-
await using var recorder = new TestRecorder(App);
548-
549-
var stackPanel = await LoadXaml<StackPanel>($$"""
550-
<StackPanel>
551-
<TextBox Style="{StaticResource MaterialDesignFilledTextBox}"
552-
materialDesign:HintAssist.Hint="Hint text"
553-
VerticalContentAlignment="{{alignment}}"
554-
AcceptsReturn="True"
555-
Height="200" />
556-
</StackPanel>
557-
""");
558-
559-
IVisualElement<TextBox> textBox = await stackPanel.GetElement<TextBox>("/TextBox");
560-
IVisualElement<Grid> contentGrid = await textBox.GetElement<Grid>("ContentGrid");
561-
562-
await Assert.That(await contentGrid.GetVerticalAlignment()).IsEqualTo(expectedFloatingHintAlignment);
563-
564-
recorder.Success();
565-
}
566-
567539
[Test]
568540
[Description("Issue 3176")]
569541
public async Task ValidationErrorTemplate_WithChangingErrors_UpdatesValidation()

0 commit comments

Comments
 (0)