我是Silverlight的新手,我的间距很难。如下所示,我在Horizontal 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>
答案 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"
指定水平边距但垂直边距较小。
该页面中的图片说明了如何应用最后一张图片:
答案 1 :(得分:0)
感谢ChrisT的回复。我决定采用不同的方法。我使用Canvas而不是StackPanel。