我有一个ListBox
,其中包含此模板。
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="Template">
<StackPanel Margin="0,10">
<Border BorderBrush="Black" BorderThickness="1" Background="#FFFFC000" Width="460" MinHeight="76">
<StackPanel Margin="4,4,-4,-153">
<TextBlock Text="{Binding }" HorizontalAlignment="Center" VerticalAlignment="Top" Foreground="Black" TextWrapping="Wrap"/>
<TextBlock " Text="{Binding Mode=OneWay}" HorizontalAlignment="Center" VerticalAlignment="Top" Foreground="Black" TextWrapping="Wrap"/>
</StackPanel>
</Border>
</StackPanel>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
但是我必须强制在Width
上设置Height
和Border
,否则它会像Width
和Height
一样设置为“2”。
就像它不明白我内部有2 TextBlock
并且不会扩展来填充它们。
这让我不得不在我不喜欢的地方放置一个固定的高度和宽度,就像文字太大而被截断一样。
答案 0 :(得分:0)
你可以抛弃你的StackPanel
,因为你不需要它们,它们也是让你的包装无法工作的东西,你需要一个像Grid
这样的面板。否定的Margin
也不是DataTemplate
ListBox
中通常会看到的<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="Template">
<Grid Margin="0,10">
<Border BorderBrush="Black" BorderThickness="1" Background="#FFFFC000"/>
<TextBlock TextWrapping="Wrap"
HorizontalAlignment="Center" Margin="4,4,-4,-153">
<Run Text="{Binding }"/><LineBreak/>
<Run Text="{Binding Mode=OneWay}"/>
</TextBlock>
</Grid>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
,所以我猜你还有其他一些时髦的布局内容。在树的其他地方练习。
Grid
因此,除非我在某个地方遗漏某些内容,否则这应该可以解决您的问题,因为{{1}}将为您处理其子项的大小并消耗其父项所需的空间。但是,如果你的结构中有其他东西推动它并且不会让它占用那个空间它应该调用你的包装。
希望这会有所帮助:)