Xaml Windows Phone 7中的边框控制、自动高度和;宽度不对

Xaml Windows Phone 7中的边框控制、自动高度和;宽度不对,xaml,windows-phone-7,Xaml,Windows Phone 7,我有一个列表框,里面有这个模板 <phone:PhoneApplicationPage.Resources> <DataTemplate x:Key="Template"> <StackPanel Margin="0,10"> <Border BorderBrush="Black" BorderThickness="1" Background="#FFFFC000" Width="460" MinHeigh

我有一个
列表框
,里面有这个模板

<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>


你可以扔掉你的
StackPanel
,因为你不需要它们,它们也是阻止你的包装工作的原因,你需要一个类似
网格的面板。对于
列表框
,在
数据模板
中通常也不会看到负的
边距
,因此我猜在树上其他地方的实践中也会出现一些其他时髦的布局

<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>

因此,除非我在某个地方遗漏了什么,否则这应该可以解决问题,因为
网格将为您处理子网格的大小,并消耗父网格中所需的空间。然而,如果在你的结构中有其他东西在推动东西,并且不让它占用空间,它应该调用你的包装


希望这有帮助:)

我只是在玩游戏,可能意外地碰到了-4,我将其删除并更改为网格。在项目模板中,我也有一个堆栈面板,它可以保留或更改吗?实际上,似乎是外部堆栈面板导致了问题,内部面板似乎很好。我没有换行符,我需要导入一些东西吗?是的,控制两个文本块的内部面板不是罪魁祸首,我只是有时会在一些xaml上使用强迫症。至于换行符,我没有费心在WP7上测试它,我只是觉得这对XAML来说是非常通用的,所以您可能需要回到使用单独文本块的旧方法,并使用它,网格作为容器是您在这一方面的主要优势:)