Подтвердить что ты не робот

Как определить переменную в XAML?

У меня есть следующие две кнопки в XAML:

<Button Content="Previous"
        Margin="10,0,0,10"/>
<Button Content="Next"
        Margin="0,0,10,10"/>

Как я могу определить "10" как переменную, поэтому я могу изменить ее в одном месте, примерно так:

PSEUDO CODE:

<variable x:key="theMargin"/>
<Button Content="Previous"
        Margin="{Variable theMargin},0,0,{Variable theMargin}"/>
<Button Content="Next"
        Margin="0,0,{Variable theMargin},{Variable theMargin}"/>
4b9b3361

Ответ 1

Попробуйте следующее:

добавить в заголовок xamlfile

xmlns:System="clr-namespace:System;assembly=mscorlib"

Затем добавьте это в раздел ресурсов:

<System:Double x:Key="theMargin">2.35</System:Double>

Наконец, используйте толщину по краю:

<Button Content="Next">
   <Button.Margin>
      <Thickness Top="{StaticResource theMargin}" Left="0" Right="0"
                  Bottom ="{StaticResource theMargin}" />
   </Button.Margin>
</Button>

Многие типы систем могут быть определены следующим образом: int, char, string, DateTime и т.д.

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

Ответ 2

Почему бы вам не попробовать добавить значение как StaticResource?

Resources.Add("theMargin", 10);

Тогда вы можете получить это значение следующим образом:

<Button Content="Previous"
        Margin="{StaticResource theMargin},0,0,{StaticResource theMargin}"/>
<Button Content="Next"
        Margin="0,0,{StaticResource theMargin},{StaticResource theMargin}"/>

Ответ 3

Вам нужно вызвать это перед InitializeComponent или использовать интерфейс INotifyPropertyChanged после этого

Ответ 4

Совсем знакомый Sorskoot ответ, вы можете добавить ресурс толщины для использования, тем самым определяя каждое направление поля независимо

<UserControl.Resources>
    <Thickness x:Key="myMargin" Top="5" Left="10" Right="10" Bottom ="5"></Thickness>
</UserControl.Resources>

Затем просто используйте толщину в качестве поля:

<Button Content="Next" Margin="{StaticResource myMargin}"/>

Ответ 5

Объявите его как (возможно статическое readonly или const) поле в файле codebehind.