【发布时间】:2016-09-24 13:55:05
【问题描述】:
我做了一个简单的例子。有一个工具窗口。它具有网格作为内容,具有三个区域。第一个区域是带有一些文本的文本框,第二个是标签,第三个是另一个文本框。 Grid 的行高分别为:“*”、“30”、“*”。对于我设置的窗口SizeToContent = SizeToContent.WidthAndHeight。当我打开它时,第一个 TextBox 的高度比第二个大。当我尝试重新调整窗口时,高度会按预期成比例。
有窗口的xaml:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="WpfApplication5.MainWindow"
Title="MainWindow" MinHeight="200" MinWidth="200"
DataContext="System.Data.DataSet" Width="291" d:DesignHeight="246"
WindowStyle="ToolWindow"
SizeToContent="WidthAndHeight">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="30"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBox x:Name="Text1" />
<Label Grid.Row="1" Content="SOME TEXT"/>
<TextBox x:Name="Text2" Grid.Row="2"/>
</Grid>
</Window>
以及后面的代码:
using System.Data;
using System.Windows;
namespace WpfApplication5
{
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
Text1.Text =
"some text\nsome text\nsome text\nsome text\nsome text\nsome text\nsome text\nsome text\nsome text\n";
}
}
}
我的问题是:如何解决这些跳跃高度?最初的高度应该是成比例的。
初始图像:
调整大小后(我想要加载的内容):
【问题讨论】:
-
尝试在您的文本框上设置
VerticalAlignment=Stretch,以便它们伸展以填充网格单元格中的所有可用空间。 -
不幸的是,它没有帮助。第一个TextBox在打开的时候还是比较大的。
-
我不认为您可以提供正在运行的文本框和 3 列的屏幕截图。很可能是带有文本框的标签引起了问题,因为标签的填充会使它们的大小膨胀 - 也许尝试将标签的填充属性设置为“0,0,0,0”。
-
@Logan 我将代码放在一个测试项目中并添加了一些图像。在看到输出之前我也没有正确理解这个问题:)