Silverlight中的间距

时间:2010-02-26 15:38:41

标签: .net asp.net silverlight-3.0

我是Silverlight的新手,我的间距很难。如下所示,我在Horizo​​ntal StackPanel中分别有两行标签。当它们显示时,它们之间有很宽的空间(大约一英寸)。我无法弄清楚如何减少这个间距。高度特征似乎没有这样做。

提前致谢。

<UserControl x:Class="SilverlightApplication1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480" Margin="10">
    <StackPanel x:Name="LayoutRoot" Background="LightGray" Margin="10">
        <StackPanel Orientation="Horizontal" Height="50" Width="500" Margin="10">
            <TextBlock  Height="15" Width="100"  Margin="20"/>
            <TextBlock Text="Heading" Height="15" Width="100"  Margin="10"/>
            <TextBlock Text="PDOF" Height="15" Width="100"  Margin="15"/>
            <TextBlock Text="PDOF" Height="15" Width="100"  Margin="15"/>

        </StackPanel>
        <StackPanel Orientation="Horizontal" Height="50" Width="500" Margin="10">
            <TextBlock  Height="15" Width="100"  Margin="20"/>
            <TextBlock Text="(degrees)" Height="15" Width="60"  Margin="10"/>
            <TextBlock Text="locked" Height="15" Width="40"  Margin="10"/>
            <TextBlock Text="(degrees)" Height="15" Width="100"  Margin="15"/>
            <TextBlock Text="(O'Clock)" Height="15" Width="100"  Margin="15"/>

        </StackPanel>
    </StackPanel>
</UserControl>

2 个答案:

答案 0 :(得分:2)

通过将边距指定为单个值Margin="10",您可以在每个边,左边,顶部,右边,底部周围指定相等的边距为10。

你需要将边距分割为左边和右边的边缘说:

Margin="10,0,20,0"

通过这样做,左侧和右侧只有一个边距,而不是顶部和底部。这将需要应用于所有元素,因为边距是累积的。

有关Margin的{​​{3}}的更多信息:

<frameworkElement Margin="uniform"/>
- or -
<frameworkElement Margin="left+right,top+bottom"/>
- or -
<frameworkElement Margin="left,top,right,bottom"/>

因此,单个值是均匀间距,一对值分割水平和垂直边距,并且所有四个值都可以完全控制所有四个值。

在你的情况下,你可以简单地:

Margin="10,0"

指定没有垂直边距的水平边距,或

Margin="15,10"

指定水平边距但垂直边距较小。

该页面中的图片说明了如何应用最后一张图片:

MSDN page

答案 1 :(得分:0)

感谢ChrisT的回复。我决定采用不同的方法。我使用Canvas而不是StackPanel。