【发布时间】:2015-01-10 17:57:20
【问题描述】:
以下 wpf 矩形的宽度为 20,高度为 0。
我想知道为什么会这样。
<DataGridTemplateColumn Header="R" Width="20" MaxWidth="20" MinWidth="20">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border BorderBrush="Green">
<Rectangle Fill="Red"/>
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
【问题讨论】:
-
边框的高度是多少?你对矩形使用某些样式吗?
-
无隐藏样式。边框如上 - 它适合其内容,因此高度也为 0。事实上,
ContentPresenter的高度也为 0,所以问题在于DataTemplate假定它没有内容。 -
你必须明确设置宽度和高度。
-
@KK:好吧,
Width是自动的。设置为 20,所以“不必”。当然设置Height=23有效。我想知道为什么 W/H 的行为不同。 -
如果
Height应该是除 0 以外的某个值或非常小的值,您希望它是哪个值?自动设置为 20、30、40?管他呢?事实上HorizontalAlignment默认为Stretch,所以它拉伸了整列的宽度,设置为20。