我有一个非常简单的窗口,它的网格包含两列,一个 TextBlock 和一个 TextBox。
我需要它来将第 0 列设置为自动调整其内容的大小,并使第 1 列(内容)的大小是第 0 列大小的 4 倍。
我怎样才能做到这一点。如果这是解决方案,我将创建一个 Grid 后代,因为我真的需要这个功能。
编辑:更多解释。第 0 列的内容在运行时不会改变,因此第 0 列或第 1 列的大小不能在运行时改变。网格将是配置的窗口的子窗口,SizeToContent="WidthAndHeight"
因此不得存在额外空间。
对 Dmitry 的回答:我用下面的代码尝试了你所说的,但它根本不起作用:
<Window x:Class="UnderstandSizing.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1"
SizeToContent="WidthAndHeight" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".25*" />
<ColumnDefinition Width=".75*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Text="THIS IS THE LABEL:" />
<TextBox Grid.Column="1" Text="content" />
</Grid>
</Window>
最后编辑:为什么我(或任何人)需要这个?
WPF 的优点之一是它能够在没有固定大小的情况下工作,对吧?如果你有障碍并且你有更大的字体大小,一切都会看起来很好。如果你将你的 UI 翻译成另一种需要 x2 大小的语言,一切都会看起来很好。如果您有不同的 PPI 设置,一切都会很好。
但是我不想看到屏幕在运行时改变它的大小,因为用户不习惯这个。这就是为什么我想将输入字段的大小设置为已知字段的倍数。如果我让标签单元格重新调整大小到它需要的大小,然后我将内容单元格设置为标签的乘数,我将获得自动调整大小的好处,用户期望具有固定大小的屏幕(除非他们改变它调整大小它)。