Я использую Brads Диктор .
Это прекрасно работает, но у меня есть только 1 проблема ...
Я не могу получить это так, чтобыДиалог показывает Центр экрана.
Может кто-нибудь помочь мне здесь, пожалуйста.
Это Преобразователь работал на меня.
В 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>
Существует несколько способов центрировать диалоговое окно.
В классе DialogPresenter обновите метод Show (), чтобы установить window.WindowStartupPosition = WindowStartupLocation.CenterScreen.
Напишите пользовательское действие TriggerAction и переопределите Invoke, чтобы сделать следующее.
var window = Window.GetWindow (this.AssociatedObject);window.WindowStartupLocation.CenterScreen
затем присоедините действие триггера к ControlTemplate в разделе триггеров.Вы бы использовали EventTrigger, используя LoadedEvent и вызывая свой TriggerAction.
Примечание. Если у вас есть ExpressionBlend, он упрощает перетаскивание TriggerActions в пользовательский интерфейс, поскольку он пишет для вас часть EventTrigger.