文本框与WPF中的数据一起增长

时间:2013-02-09 12:52:50

标签: wpf textbox wpf-controls

从过去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>

请有人帮我这方面。各种帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

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

e.g。

<TextBox TextWrapping="Wrap" AcceptsReturn="true" /> 

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

答案 1 :(得分:1)

你确定TextBox越来越大还是只是填满了文字? 对于测试,在其上放置边框画笔并且Horizo​​ntalContentAlignment =“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>