从过去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>
请有人帮我这方面。各种帮助将不胜感激。
答案 0 :(得分:2)
您可以在AcceptsReturn
上使用TextWrapping
和TextBox
属性来允许换行符,并在文本大小超过TextBox
的宽度时允许文本换行
e.g。
<TextBox TextWrapping="Wrap" AcceptsReturn="true" />
AcceptsReturn
确保用户可以按返回而不是按CTRL +返回以在文本框中添加换行符。否则,文本框失去焦点,并按照标准行为按下默认按钮。 (我想如果没有默认按钮,无论如何都会插入换行符)
答案 1 :(得分:1)
你确定TextBox越来越大还是只是填满了文字? 对于测试,在其上放置边框画笔并且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>