这是我的窗口中可用的文本框的代码(form1.xaml),我的要求是当我调整窗口大小时我也要调整文本框宽度,我怎么能够实现这个....
<TextBox Width="500" HorizontalAlignment="Left" Margin="5,0,0,5" TextWrapping="Wrap" AcceptsReturn="True" Text="{Binding Result,UpdateSourceTrigger=PropertyChanged,ValidatesOnDataErrors=True}" IsEnabled="{Binding OpenMode,Converter={StaticResource EnableModeConverter}}" Height="70" />
答案 0 :(得分:2)
在WPF中,您通常将TextBox
控件放在布局Grid
控件中,并将该网格单元格的ColumnDefinition Width
属性设置为某个相对值&#34; *&#34;,so它将使用Window调整大小。不要使用固定的宽度=&#34; 500&#34;根据您的示例:同样,删除"HorizontalAlignment="Left"
(默认值为HorizontalAlignment="Stretch"
,因此您可以省略它以简化您的XAML)。请参阅以下示例代码段:
<Grid Name="Grid1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="4*"/>
</Grid.RowDefinitions>
<TextBox Name="TextBox1" Grid.Row="0" Grid.Column="0" Height="70" Margin="5,0,0,5" TextWrapping="Wrap" AcceptsReturn="True" (...Rest of Your code) />
</Grid>
注意:相同的技术可以应用于垂直&#34;高度&#34;属性,如果你需要使它也可以调整大小。
希望这会有所帮助。最好的问候,
答案 1 :(得分:0)
将HorizontalAlignment
设为Stretch
,不要设置Width
<Grid>
<TextBox HorizontalAlignment="Stretch"
Margin="5,0,0,5"
TextWrapping="Wrap"
AcceptsReturn="True"
Height="70" />
</Grid>
答案 2 :(得分:0)
WPF中的布局在很大程度上取决于父容器。例如,创建一个包含标签和输入字段的表单,请考虑使用“网格”面板。默认情况下,WPF中的控件根据其父级的布局行为调整大小。下面是一个窗口示例,其中包含两个带标签的文本框和两个随窗口一起调整大小的按钮。
add