2015-05-29 259 views
0

这是我的窗口(form1.xaml)中可用的Textbox代码,我的要求是当我调整窗口大小时,我想调整文本框宽度,我怎样才能实现这一点。 ...当文本框调整大小时,窗口大小调整

<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" /> 

回答

1

在WPF中您通常将布局Grid控制范围之内TextBox控制和网格单元ColumnDefinition Width属性设置为一些相对值“*”,因此它会与窗口调整。不要使用固定宽度=“500”根据您的样本:同样,删除"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> 

:同样的技术可以在情况下应用于垂直“高度”属性,你需要使它也可以调整大小。

希望这会有所帮助。最好的问候,

0

设置HorizontalAlignmentStretch,并且不设置Width

<Grid> 
    <TextBox HorizontalAlignment="Stretch" 
      Margin="5,0,0,5" 
      TextWrapping="Wrap" 
      AcceptsReturn="True" 
      Height="70" /> 
</Grid> 
0

布局WPF是严重依赖父容器上。例如,使用标签和输入字段创建表单,请考虑使用Grid面板。默认情况下,WPF中的控件根据其父级的布局行为调整大小。下面是一个带有两个标签文本框和两个按钮的窗口示例,这些按钮随窗口一起调整大小。

<Window> 
     <Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 

    <Label Content="Contact Name" Grid.Row="0" Grid.Column="0" /> 
    <TextBox Grid.Row="0" Grid.Column="1" /> 

    <Label Content="Contact Location" Grid.Row="1" Grid.Column="0" /> 
    <TextBox Grid.Row="1" Grid.Column="1" /> 

    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" 
       VerticalAlignment="Bottom" Grid.Row="2" Grid.Column="1"> 
     <Button Content="OK" Width="75" Height="24" Margin="3" /> 
     <Button Content="Cancel" Width="75" Height="24" Margin="3" /> 
    </StackPanel> 

    </Grid> 
</Window> 
相关问题