我有一个文本框,其文本绑定到属性。 当我手动输入时,它只是扩展其宽度以显示所有文本。
但是,当我从代码隐藏中更改属性时,textbox不会扩展到所需的宽度和高度。
我的文本框:
<TextBox Text="{Binding TranslationText}" VerticalAlignment="Center" Grid.Row="2" materialDesign:HintAssist.IsFloating="True" materialDesign:HintAssist.Hint="Text to translate" Name="TranslateBox" TextChanged="TranslateBox_OnTextChanged" HorizontalAlignment="Center" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" AcceptsReturn="True" ></TextBox>
如何使用codebehind设置它:
this.TranslationText = "a very long text..";
OnPropertyChanged("TranslationText");
在代码隐藏中设置后,文本会更新,但文本框不会扩展其宽度和高度。
答案 0 :(得分:0)
致电UpdateLauout
。
<TextBox x:Name="tb" Text="{Binding TranslationText}" VerticalAlignment="Center" Grid.Row="2" materialDesign:HintAssist.IsFloating="True" materialDesign:HintAssist.Hint="Text to translate" Name="TranslateBox" TextChanged="TranslateBox_OnTextChanged" HorizontalAlignment="Center" TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" AcceptsReturn="True" >
C#
this.TranslationText = "a very long text..";
tb.UpdateLayout();
OnPropertyChanged("TranslationText");