XAML:StackPanel中两行之间的流氓差距

时间:2012-11-29 15:11:17

标签: silverlight xaml windows-phone windows-phone-8

Windows Phone 8,XAML。我在彼此相邻的水平Line中有两个拉伸的StackPanel个对象。其中任何一个都没有左边距或右边距。然而,它们之间存在明显可见的差距。 XAML:

<StackPanel x:Name="Root" Orientation="Horizontal">

    <Line
        x:Name="LHLine11"
        Margin="0,50,0,0"
        Stretch="Fill"
        Width="10"
        X1="0" X2="1" Y1="0" Y2="0"
        StrokeThickness="1"
        VerticalAlignment="Top"
        Stroke="{StaticResource PhoneButtonBasePressedForegroundBrush}"
        />

    <Line
        x:Name="LHLine1"
        Margin="0,50,0,0"
        Stretch="Fill"
        Width="10"
        X1="0" X2="1" Y1="0" Y2="0"
        StrokeThickness="1"
        VerticalAlignment="Top"
        Stroke="{StaticResource PhoneButtonBasePressedForegroundBrush}"
        />
   </StackPanel>

怎么回事?

如果你想知道为什么我不做一个更长的行:这是一个演示行为的最小例子。

1 个答案:

答案 0 :(得分:3)

我无法解释为什么当你使用Line元素时显然有1个像素的间隙,它似乎与此不同,可能是测量方法中的一个无用的错误?一些快速的小解决方法虽然是在其中一条线的连接侧添加-1边距。或者你可以用Rectangle替换它们,并在没有1像素间隙的情况下完成同样的事情。

<StackPanel Orientation="Horizontal">
    <Rectangle Height="1" Fill="Blue" Width="50"/>
    <Rectangle Height="1" Fill="Red" Width="50"/>
</StackPanel>

希望这至少有点帮助。干杯