2015-05-29 257 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> 
相關問題