Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使多行文本框的高度随着窗体在WPF中垂直拉伸而自动增加_C#_.net_Wpf_Xaml - Fatal编程技术网

C# 如何使多行文本框的高度随着窗体在WPF中垂直拉伸而自动增加

C# 如何使多行文本框的高度随着窗体在WPF中垂直拉伸而自动增加,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我使用下面的层次结构 WPF form - Grid - GroupBox - Grid - multiline textbox 你能告诉我当表单在WPF中垂直拉伸时,如何使多行文本框的高度自动增加吗。用户可以调整窗体的大小 <Window x:Class="WPFApp.UserFunctions" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/p

我使用下面的层次结构

 WPF form 
   - Grid
     - GroupBox
        - Grid 
          -  multiline textbox
你能告诉我当表单在WPF中垂直拉伸时,如何使多行文本框的高度自动增加吗。用户可以调整窗体的大小

   <Window x:Class="WPFApp.UserFunctions"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:rp="clr-namespace:WPFApp" 
        WindowStartupLocation="CenterScreen"
        ResizeMode="CanResize"
        Title="User Functions" ShowInTaskbar="False" 
        MinWidth="770" MinHeight="570" Width="770" Height="550"
        Icon="/WPFApp;component/images/Globe.png" 
        Name="frmUserFunctions" Closing="OnWindowClosing">
        <Grid Margin="2" VerticalAlignment="Stretch" Height="auto">
            <Grid.Resources>
                <ResourceDictionary>
                    <ResourceDictionary.MergedDictionaries>
                        <ResourceDictionary Source="../Style/StyleDictionary.xaml"/>
                    </ResourceDictionary.MergedDictionaries>
                </ResourceDictionary>
            </Grid.Resources>
            <Grid.RowDefinitions>
                <RowDefinition Height="auto" />
                <RowDefinition Height="auto" MinHeight="40" />
                <RowDefinition Height="auto" MinHeight="40" />
                <RowDefinition Height="auto" MinHeight="40" />
                <RowDefinition Height="auto" MinHeight="40" />
                <RowDefinition Height="auto" MinHeight="40" />
                <RowDefinition Height="auto" MinHeight="40" />
                <RowDefinition Height="auto" MinHeight="40" />
            </Grid.RowDefinitions>
            <Label Name="lblErrMsgDesp" Foreground="Red" FontWeight="Bold" Visibility="Collapsed" 
                    Content="Error"   Margin="5,5,5,5" Grid.Row="0" ></Label>

            <GroupBox Name="grpCFL" Margin="2" Width="auto" VerticalAlignment="Top" Grid.Row="1" Grid.RowSpan="2">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <StackPanel Orientation="Vertical" Margin="2" Width="auto" Grid.Row="0" VerticalAlignment="Top">
                        <StackPanel Margin="2" Width="auto">
                            <TextBlock Name="tbCFLStaticMessage" Text=""
                                       Foreground="Black"  Margin="2" ></TextBlock>
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="2" Width="auto">
                            <Button  Name="btnOpenCFL" Style="{DynamicResource btnMainNew}" 
                                                 Click="OnClickCFLBrowse" Margin="5" />

                            <Button  Name="btnNewCFL" Style="{DynamicResource btnMainNew}" 
                                                 Click="OnClickNewCFL" Margin="5" />

                            <Button  Name="btnSaveCFL" Style="{DynamicResource btnMainNew}"
                                                 Click="OnClickSaveCFL" Margin="5" />
                        </StackPanel>
                    </StackPanel>

                    <StackPanel Orientation="Vertical" Margin="2" Width="auto" Grid.Row="1" 
                                   VerticalAlignment="Top">
                        <TextBlock Name="tbCFLFilePath" Foreground="Black"  Margin="2" ></TextBlock>
                        <Border BorderThickness="1" BorderBrush="LightGray" Margin="2">
                            <TextBlock MinWidth="660"  IsEnabled="False" Margin="1" Name="tbCFLFileName" 
                                       FontSize="13" Foreground="Black" MinHeight="20"/>
                        </Border>
                    </StackPanel>

                </Grid>
            </GroupBox>
            <GroupBox Name="grpFunctions"  Margin="2" VerticalAlignment="Stretch" Height="auto"
                      HorizontalAlignment="Stretch" Grid.Row="3" Grid.RowSpan="5">
                <Grid  VerticalAlignment="Stretch" Height="auto">
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition/>
                        <RowDefinition/>
                        <RowDefinition/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <Border BorderThickness="0" BorderBrush="LightGray" Margin="2" Grid.Row="0">
                        <Grid Margin="2" >
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="auto"/>
                                <ColumnDefinition Width="auto"/>
                            </Grid.ColumnDefinitions>

                            <StackPanel Orientation="Horizontal" >
                                <Button Style="{DynamicResource btnMainNew}"  
                                HorizontalAlignment="Left" Name="btnNew" Margin="2,5,5,5" IsEnabled="False"
                                Click="OnClickNew"></Button>
                                <Button Style="{DynamicResource btnMainNew}" 
                                HorizontalAlignment="Right" Name="btnEdit" Margin="5,5,5,5"  IsEnabled="False"
                                Click="OnClickEdit"></Button>
                                <Button Style="{DynamicResource btnMainNew}" 
                                HorizontalAlignment="Right" Name="btnDelete" Margin="5,5,5,5"  IsEnabled="False"
                                Click="OnClickDelete"></Button>
                            </StackPanel>
                            <StackPanel Grid.Column="1" Orientation="Horizontal" 
                                HorizontalAlignment="Right" Margin="2">

                                <Button Style="{DynamicResource btnMainNew}" Content="Clear"
                                HorizontalAlignment="Right" Name="btnReset" Margin="5,5,5,5" 
                                Click="OnClickReset"/>

                                <Button Style="{DynamicResource btnMainNew}" Content="Close" Click="OnClickClose"
                                HorizontalAlignment="Right" Name="btnCancel" Margin="5,5,5,5" />
                            </StackPanel>
                        </Grid>
                    </Border>

                    <StackPanel Grid.Row="1" Margin="2" Orientation="Vertical" Name="spSelectFunction"
                      Width="auto"  VerticalAlignment="Top">
                        <TextBlock Name="tbSelectFunction" Foreground="Black" Margin="5,2,2,2" Width="auto"/>
                        <ComboBox Style="{DynamicResource cboBox}" IsEnabled="False" Margin="5,2,2,2" MaxWidth="1650"
                          Name="cmbFunctionsList" SelectionChanged="OnFunctionsListSelectionChanged"
                      VerticalAlignment="Center"  MinHeight="25"  Width="auto"/>
                    </StackPanel>

                    <StackPanel Orientation="Vertical" Grid.Row="1" Name="spFunctionName"  Margin="2" 
                        VerticalAlignment="Top" Visibility="Collapsed">
                        <TextBlock Name="tbFunctionName" Foreground="Black"  Width="auto"  Margin="5,2,2,2"></TextBlock>
                        <TextBox  Style="{DynamicResource txtBox}"  Width="auto"
                                 AcceptsReturn="False" Name="txtFunctionName" VerticalAlignment="Center" 
                                 TextChanged="OnFunctionNameTextChanged" Margin="5,2,2,2" MaxWidth="1650"
                                 VerticalScrollBarVisibility="Auto" TextWrapping="Wrap"  />
                    </StackPanel>

                    <StackPanel Grid.Row="2"  Margin="2" Orientation="Vertical" >
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition  Width="115"/>
                                <ColumnDefinition  Width="115"/>
                                <ColumnDefinition  Width="115"/>
                                <ColumnDefinition  Width="30"/>
                                <ColumnDefinition  />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition/>
                                <RowDefinition/>
                                <RowDefinition/>
                            </Grid.RowDefinitions>

                            <TextBlock Name="tbDataTypes" Foreground="Black"  Grid.Column="0" Grid.Row="0" Margin="5,2,2,2" >
                            </TextBlock>
                            <TextBlock Name="tbOccurences" Foreground="Black"  Grid.Column="1" Grid.Row="0" Margin="5,2,2,2">
                            </TextBlock>
                            <TextBlock Name="tbParametersSize" Foreground="Black"  Grid.Column="2" Grid.Row="0" Margin="5,2,2,2">
                            </TextBlock>
                            <TextBlock Name="tbGeneratedSignatureLabel" Foreground="Black"  Grid.Row="0" Grid.Column="3" Grid.ColumnSpan="2" Margin="5,2,2,2" />
                            <ComboBox Name="cmbDataTypes" Grid.Row="1" Grid.Column="0" Margin="5" 
                              Width="105" Style="{DynamicResource cboBox}" ItemsSource="{Binding}"
                              SelectionChanged="OncmbDataTypesSelectionChanged" MinHeight="25" 
                              MaxWidth="105" MinWidth="105">
                            </ComboBox>

                            <ComboBox Name="cmbOccurences" Grid.Row="1" Grid.Column="1" Margin="5" 
                              HorizontalAlignment="Left" Width="105" ItemsSource="{Binding}"
                              Style="{DynamicResource cboBox}" 
                              MinHeight="25" MaxWidth="105" MinWidth="105"
                              SelectionChanged="OncmbOccurencesSelectionChanged">
                            </ComboBox>

                            <ComboBox Name="cmbParametersNo" Grid.Row="1" Grid.Column="2" Margin="5" 
                              HorizontalAlignment="Left" Width="105" ItemsSource="{Binding}"
                              Style="{DynamicResource cboBox}" 
                              MinHeight="25" MaxWidth="105" MinWidth="105"
                              SelectionChanged="OncmbParametersNoSelectionChanged">
                            </ComboBox>
                            <TextBlock Margin="0" Name="tbGeneratedSignatureLocal" Text="local:"  Grid.Row="1" Grid.Column="3"
                                           Foreground="Black" TextDecorations="None" VerticalAlignment="Center" />
                             <TextBlock Margin="0" Name="tbGeneratedSignature" Grid.Column="4" Grid.Row="1"
                                           Foreground="Black" TextDecorations="None" VerticalAlignment="Center"/>

                        </Grid>
                    </StackPanel>

                    <StackPanel Grid.Row="3" Name="grpDescription" Orientation="Vertical"  Width="auto"
                      VerticalAlignment="Top"  Margin="2">
                        <TextBlock Name="tbDescription" Margin="5,2,2,2" Foreground="Black"></TextBlock>
                        <TextBox   Style="{DynamicResource txtBox}" IsEnabled="False" Margin="5,2,2,2"
                      AcceptsReturn="False" Name="txtDescription" VerticalAlignment="Center" MaxWidth="1650"
                      VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" MaxLines="1" IsReadOnly="False" />
                    </StackPanel>

                    <Grid  Grid.Row="4" Name="grpProgram" VerticalAlignment="Stretch" Margin="2"  MinHeight="120" 
                                HorizontalAlignment="Stretch" >
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition Height="auto"/>
                        </Grid.RowDefinitions>

                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>

                        <TextBlock Name="tbProgram" Foreground="Black" Grid.Row="0"  Margin="5,2,2,2"  ></TextBlock>

 <TextBox Grid.Row="1" IsEnabled="False" Margin="5,2,2,0"  AcceptsReturn="True" Name="txtProgram"
                                 VerticalAlignment="Stretch" Width="auto"
                          VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" MinHeight="100" MaxWidth="1650"  Height="auto" />

                    </Grid>

                </Grid>
            </GroupBox>
        </Grid>
    </Window>


将文本框的水平和垂直对齐设置为
拉伸
。此外,您还必须设计
Grid-GroupBox-Grid
,其中包含
TextBox
,这样当窗口大小增加时,它们的高度也会增加。您可以通过将这些控件的高度设置为
*
,或将其对齐设置为
拉伸
(取决于控件)。否则,
TextBox
不会增加它的高度。

XAML没有以理想的方式工作,因为在最外层的网格中,最后四行声明是没有用的,删除它们并使第三行高度=*产生理想的结果

我想使最底部的多行文本框也以@Haris的形式拉伸共享XAMl