Установка свойства поля уровня приложения - PullRequest
0 голосов
/ 08 июля 2011

Мы стараемся следовать этим рекомендациям.Для этого я хочу установить стиль или свойства уровня приложения, чтобы задать поля между элементами управления.

Я не могу установить поля с помощью стиля, так как он запрашивает у меня целевой объект, и могут быть случаи, когда я надеваюЯ не хочу следовать приведенному выше.

Я могу установить поле, задав некоторые свойства getter в App.xaml.cs

   /// <summary>
    /// Gets the margin to be set all around the dialog
    /// </summary>
    public Thickness MarginsAllAroundDialog
    {
      get
      {
        // returns default margin
        return new Thickness(7);
      }
    }

и установив поле для диалогового окна следующим образом

<Window x:Class="XXX.Views.MainWindow"
        x:Name="mainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:prism="http://www.codeplex.com/prism"
        Title="MainWindow" 
        Margin="{Binding Path=MarginsAllAroundDialog, Source={x:Static Application.Current}}"
        Height="350" 
        Width="525"
        WindowState="Maximized">

Это правильный путь или мы достигаем того же с помощью более простых средств.

1 Ответ

3 голосов
/ 08 июля 2011

Я думаю, что ваш подход достаточно хорош, но рассмотрите возможность объявления полей в XAML.

Вы можете определить поля как ресурсы в ваших App.xaml:

<Application>
    <Application.Resources>
        <Thickness x:Key="MarginsAllAroundDialog" Bottom="7" Left="7" Right="7" Top="7" />
    </Application.Resources>
</Application>

и вместо этого ссылаться на эти ресурсыиспользования связующего:

<Window x:Class="XXX.Views.MainWindow"
        Margin="{StaticResource MarginsAllAroundDialog}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...