来自MSDN:
对象的宽度,以像素为单位。默认值为 Double.NaN。除特殊的 Double.NaN 值外,该值必须等于或大于 0。上限信息见备注
它不能*
作为价值。它可以采用的唯一特殊值是Double.NaN
(表示自动行为):
Height和Width的默认值不是0;它是 Double.NaN。高度和宽度支持成为未设置的“自动”值的能力。因为 Height 和 Width 是双精度值,所以 Double.NaN 用作一个特殊值来表示这种“自动”行为。布局系统将“自动”值解释为通常意味着对象的大小应调整为布局中的可用大小,而不是特定的像素值。
也许您将 StackPanel Width属性与专用于Grid的ColumnDefinition的属性混合在一起,这不是一种类型,而是一种类型。double
GridLength
如果你想让你StackPanel
在宽度上占据所有剩余空间,那么你必须把它放在 a 内Grid
:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Margin="6,6,6,6"
Background="Gray"
Orientation="Vertical"
HorizontalAlignment="Left">
...
</Grid>
或者
您也可以尝试简单地将StackPanel.HorizontalAlignement属性设置为该Stretch
值。
如果这些提议都不起作用,则问题位于默认模板ListBoxItem
内。ListBox