我希望在我的WPF C#应用程序中有TextBox
,在使用多个文本更改文本内容时,它不会自动更改其大小。
示例:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" SizeToContent="WidthAndHeight">
<Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBox x:Name="textBox" Grid.Column="0">
hello world</TextBox>
<Button x:Name="button" Grid.Column="1" Click="button_Click">
Add many Text
</Button>
</Grid>
</Grid>
</Window>
代码背后:
private void button_Click(object sender, RoutedEventArgs e)
{
textBox.Text = "many text many text many text many text many text many text many text many text many text many text many text many text many text many text many text";
}
使用此应用程序,主窗口的大小与SizeToContent="WidthAndHeight"
的内容相符。单击按钮后,TextBox
将调整自身和整个窗口的大小。
当TextBox
的文本发生更改时,是否可以禁用调整大小,但在用户调整窗口大小时仍保留resizable属性?
答案 0 :(得分:2)
将TextBox的MaxWidth设置为您想要的值?
<TextBox x:Name="textBox" Grid.Column="0" MinWidth="0" MaxWidth="320">
hello world
</TextBox>
其中maxwidth只是我的任意数字。在调整窗口大小时,这仍应调整文本框的大小。
或者你可以做这样的事情
<TextBox x:Name="textBox" Grid.Column="0" MinWidth="0" MaxWidth="{Binding RelativeSource={RelativeSource AncestorType=Window},Path=ActualWidth}">
hello world
</TextBox>