Как настроить экран Центра Диалог Презентера? - PullRequest
2 голосов
/ 11 ноября 2011

Я использую Brads Диктор .

Это прекрасно работает, но у меня есть только 1 проблема ...

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

Может кто-нибудь помочь мне здесь, пожалуйста.

Ответы [ 2 ]

1 голос
/ 27 февраля 2014

Это Преобразователь работал на меня.

В DialogPresenter.Generic.xaml

<controls:DragCanvas Name="DialogCanvas">
  <Grid x:Name="Dialog"  ...>
    <Canvas.Top>
        <MultiBinding Converter="{StaticResource CenterConverter}" ConverterParameter="top">
            <Binding ElementName="DialogCanvas" Path="ActualWidth" />
            <Binding ElementName="DialogCanvas" Path="ActualHeight" />
            <Binding ElementName="Dialog" Path="ActualWidth" />
            <Binding ElementName="Dialog" Path="ActualHeight" />
        </MultiBinding>
    </Canvas.Top>
    <Canvas.Left>
        ...
    </Canvas.Left>
0 голосов
/ 11 ноября 2011

Существует несколько способов центрировать диалоговое окно.

  1. В классе DialogPresenter обновите метод Show (), чтобы установить window.WindowStartupPosition = WindowStartupLocation.CenterScreen.

  2. Напишите пользовательское действие TriggerAction и переопределите Invoke, чтобы сделать следующее.

    var window = Window.GetWindow (this.AssociatedObject);window.WindowStartupLocation.CenterScreen

    затем присоедините действие триггера к ControlTemplate в разделе триггеров.Вы бы использовали EventTrigger, используя LoadedEvent и вызывая свой TriggerAction.

Примечание. Если у вас есть ExpressionBlend, он упрощает перетаскивание TriggerActions в пользовательский интерфейс, поскольку он пишет для вас часть EventTrigger.

...