Windows Phone 7中的边界控制,自动高度和宽度不对

时间:2013-10-25 21:14:32

标签: xaml windows-phone-7

我有一个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上设置HeightBorder,否则它会像WidthHeight一样设置为“2”。

就像它不明白我内部有2 TextBlock并且不会扩展来填充它们。

这让我不得不在我不喜欢的地方放置一个固定的高度和宽度,就像文字太大而被截断一样。

1 个答案:

答案 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}}将为您处理其子项的大小并消耗其父项所需的空间。但是,如果你的结构中有其他东西推动它并且不会让它占用那个空间它应该调用你的包装。

希望这会有所帮助:)