如何解决WPF Prism Dialog Service WindowStartupLocation 不重新计算位置
我在 WPF 项目中使用 Prism。我按照 Prism 网站 (here)
中的建议实施了一项对话服务我有一个 MainWindow 负责根据请求调用“_dialogService.ShowDialog(...)”方法。
似乎一切正常,除了一件事(不幸的是!): 该程序在具有定义大小的可调整大小的窗口(不是全屏)中运行,假设为 1600x900,但这并不重要。 如果我调整窗口大小(即增加大小),下次我打开对话框时,它不再居中。 它保持初始窗口大小的“居中位置”,但在窗口大小调整后不会重新计算。
有人能帮我找到解决这种行为的方法吗?
以下是 UserControl 中使用的代码:
<prism:Dialog.WindowStyle>
<Style TargetType="Window">
<Setter Property="prism:Dialog.WindowStartupLocation" Value="CenterScreen" />
<Setter Property="ResizeMode" Value="NoResize"/>
<Setter Property="ShowInTaskbar" Value="False"/>
<Setter Property="SizeToContent" Value="WidthAndHeight"/>
<Setter Property="BorderThickness" Value="0" />
<Setter Property="WindowStyle" Value="None" />
</Style>
</prism:Dialog.WindowStyle>
这是 MainWindowViewModel.cs 中的部分
public MainWindowViewModel(IRegionManager regionManager,IEventAggregator ea,IDialogService dialogService)
{
_regionManager = regionManager;
_ea = ea;
_dialogService = dialogService;
}
private void ShowDialog(DialogData data)
{
_dialogService.ShowDialog("DlgConfirmDialog",new DialogParameters($"title={data.Title}&message={data.Message}),r =>
{
//do something
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。