Интервалы в Silverlight - PullRequest
       10

Интервалы в Silverlight

1 голос
/ 26 февраля 2010

Я новичок в Silverlight, и мне тяжело с пробелами. Как вы можете видеть ниже, у меня есть две линии надписей в горизонтальной панели стека. Когда они отображаются, между ними есть большое пространство (около дюйма). Я не могу понять, как уменьшить этот интервал. Характеристики высоты, кажется, не делают этого.

Заранее спасибо.

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

2 голосов
/ 26 февраля 2010

Указывая поле в качестве единственного значения Margin="10", вы указываете равное поле в 10 вокруг каждого края, слева, сверху, справа, снизу.

Вам нужно будет разделить поле, чтобы получить его слева и справа, скажите:

Margin="10,0,20,0"

При этом есть только поле слева и справа, а не сверху и снизу. Это необходимо применить ко всем элементам, поскольку поля являются кумулятивными.

Более подробная информация содержится на странице MSDN для Margin:

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

Таким образом, одно значение представляет собой равномерный интервал, пара значений разделяет горизонтальные и вертикальные поля, а наличие всех четырех значений дает вам полный контроль над всеми четырьмя.

В вашем случае вы могли бы просто иметь:

Margin="10,0"

для указания горизонтального поля без вертикального поля или

Margin="15,10"

чтобы указать горизонтальное поле, но меньшее вертикальное поле.

Это изображение со страницы иллюстрирует, как будет применяться этот последний:

альтернативный текст http://i.msdn.microsoft.com/ms600890.margin_and_alignment_3%28en-us,VS.95%29.png

0 голосов
/ 01 марта 2010

Спасибо ChrisF за его ответ. Я решил пойти с другим appraoch. Я использовал Canvas вместо StackPanel.

...