确切的XAML代码如下:
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="6,6,6,6"
Background="Gray"
Orientation="Vertical"
HorizontalAlignment="Left"
Width="*">
...
其他宽度值运行完美。
答案 0 :(得分:1)
来自MSDN:
对象的宽度,以像素为单位。默认值为Double.NaN。除了 对于特殊的Double.NaN值,此值必须等于或 大于0.请参阅上限信息备注
不能将*
作为值。
它可以采用的唯一特殊值是Double.NaN
(表示自动行为):
高度和宽度的默认值不为0;它是Double.NaN。 高度和宽度支持未设置“自动”值的能力。 因为Height和Width是double值,所以Double.NaN用作a 表示此“自动”行为的特殊值。布局系统 解释“自动”值通常意味着对象应该 在布局中调整大小为可用大小,而不是特定大小 像素值。
也许您正在将StackPanel Width属性与专用于one Grid的ColumnDefinition混合在一起,这不是double
而是{{{}} 1}}类型。
如果您希望GridLength
占据宽度的所有重播空间,则必须将其放入StackPanel
:
Grid
OR
您还可以尝试将StackPanel.HorizontalAlignement属性设置为<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Margin="6,6,6,6"
Background="Gray"
Orientation="Vertical"
HorizontalAlignment="Left">
...
</Grid>
值。
如果这些提案都不起作用,则问题会出现在Stretch
或ListBoxItem
默认模板中。