文本框调整大小时窗口调整大小

时间:2015-05-29 20:35:34

标签: wpf xaml mvvm

这是我的窗口中可用的文本框的代码(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" />

3 个答案:

答案 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