Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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
文本框随WPF中的数据而增长_Wpf_Textbox_Wpf Controls - Fatal编程技术网

文本框随WPF中的数据而增长

文本框随WPF中的数据而增长,wpf,textbox,wpf-controls,Wpf,Textbox,Wpf Controls,在过去的3-4天里,我一直在努力学习WPF。 作为一个示例xaml,我尝试创建一个网格,并以文本块和文本框的形式在其中放置一些控件 我面临的问题是,当我继续在文本框中输入文本时,文本框的宽度会不断增加,这反过来会破坏我的整个表单 谁能帮我解决这个问题 下面是我的示例XAML代码,它由文本框组成: <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> &

在过去的3-4天里,我一直在努力学习WPF。 作为一个示例xaml,我尝试创建一个网格,并以文本块和文本框的形式在其中放置一些控件

我面临的问题是,当我继续在文本框中输入文本时,文本框的宽度会不断增加,这反过来会破坏我的整个表单

谁能帮我解决这个问题

下面是我的示例XAML代码,它由文本框组成:

 <Grid>
<Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="2*"/>


        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
  <TextBox  Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2"  FontSize="25"  Margin="5 30 130 0"/>
        <TextBox  Grid.Row="2" FontSize="25" Grid.Column="1" Grid.ColumnSpan="2" Margin="5 30 130 0"/>
        <TextBox  Grid.Row="3" FontSize="25" Grid.Column="1" Margin="5 30 160 0"/>
        <TextBox  Grid.Row="5" FontSize="25" Grid.Column="1" Grid.ColumnSpan="2" Margin="5 30 130 0"/>
</Grid>


请任何人在这方面帮助我。我们将不胜感激。

您可以使用
TextBox
上的
AcceptsReturn
TextWrapping
属性分别允许换行,并在文本大小超过
TextBox
宽度时允许文本换行

e、 g



AcceptsReturn
确保用户可以按return键而不是CTRL+return键在文本框中换行。否则,文本框将失去焦点,并按照标准行为按下默认按钮。(我想如果没有默认按钮,就会插入换行符)

你确定文本框变大了,还是只是填满了文本?
对于测试,请在其上放置一个边框笔刷,并使用HorizontalContentAlignment=“Stretch”。
如果要约束宽度,请设置宽度,否则将使用所有可用空间

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="40"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <TextBox Text="text" BorderBrush="Red" BorderThickness="2" HorizontalContentAlignment="Stretch" />
</Grid>

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="40"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <TextBox Text="text" BorderBrush="Red" BorderThickness="2" HorizontalContentAlignment="Stretch" />
</Grid>