Как установить верхнее поле только в XAML? - PullRequest
43 голосов
/ 22 августа 2009

Я могу установить поля индивидуально в код , но как мне это сделать в XAML, например? как мне это сделать:

псевдокод:

<StackPanel Margin.Top="{Binding TopMargin}">

Ответы [ 12 ]

0 голосов
/ 13 октября 2009

Я думал, что вы можете использовать синтаксис свойства от MSDN :

      <object.Margin>
        <Thickness Top="{Binding Top}"/>
      </object.Margin>

Чем вам не понадобится конвертер

Но вершина - это не DependancyProperty - назад к конвертеру

0 голосов
/ 22 августа 2009

Используйте конвертер, приведенный ниже пример кода преобразует двойную привязку к толщине. Это установит «Верх» толщины в связанное поле. При желании вы можете использовать ConverterParameter, чтобы определить, привязываете ли вы к левому, верхнему, правому или нижнему.

<StackPanel Margin="{Binding TopMargin, Converter={StaticResource MyThicknessConverter}">

.

public class ThicknessSingleValueConverter : IValueConverter
{
    override Convert(...)
    {
         return new Thickness(0, (double)object, 0, 0);
    }

    //etc...
...