Установка динамических значений в XAML - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть элемент управления Grid, в котором я хотел бы установить свойства полей в XAML и получить их от SystemInformation.CaptionHeight. Я понял, как это сделать в C #, но я хотел бы сделать это в XAML.

Я не использовал ресурсы для установки таких вещей, как раньше, но я пробовал варианты вроде

<Grid>
   <Grid.Margin>
      <Thickness Top="{StaticResource {x:Static Forms:SystemInformation.CaptionHeight}}" Left="5" Right="5" Bottom="5" />
   </Grid.Margin>
</Grid>

и

<Grid>
   <Grid.Margin>
      <Thickness Top="{x:Static Forms:SystemInformation.CaptionHeight}" Left="5" Right="5" Bottom="5" />
   </Grid.Margin>
</Grid>

но безрезультатно. Как мне динамически устанавливать такие атрибуты во время выполнения?

1 Ответ

1 голос
/ 02 декабря 2011

Используя привязку, но укажите, что источник является статическим, и укажите его на местоположение вашего свойства

Кроме того, Thickness.Top не является свойством DependencyProperty, поэтому вы не можете связать его.Лучшая альтернатива - связать Grid.Margin с помощью конвертера, который принимает двойное значение и преобразует его в свойство Thickness.

<Grid Margin="{Binding 
          Source={x:Static Forms:SystemInformation.CaptionHeight},
          Converter={StaticResource MyDoubleToMarginConverter}}" />
...