无法正确设置对话框窗口的大小和放置目标

时间:2019-01-18 14:50:20

标签: c# wpf window

我建立了一个对话框窗口,打算在整个应用程序中使用它而不是使用消息框。每当我需要使用它时,我都会在Window后面的代码中调用它,而我目前正在使用以下语法:

public void ShowDialogWindow(object sender, DialogEventArgs e)
{
    DialogWindow dialog = new DialogWindow(e.MessageToShow, DialogType.Error, ButtonsType.OkOnly, this.ActualWidth, this.ActualHeight, this);
    dialog.ShowDialog();
}

这是我的对话框窗口的构造器

public DialogWindow(string messageToDisplay, DialogType dialog, ButtonsType buttons, double width, double height, object Owner)
{
    InitializeComponent();
    this.DataContext = this;
    this.Owner = Owner as Window;
    AWidth = width;
    AHeight = height;
    -----
}

这是xaml中的开始窗口标签

<Window x:Class="DialogWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        ---
        mc:Ignorable="d" WindowStyle="None" 
        WindowStartupLocation="CenterOwner"
        AllowsTransparency="True" 
        Width="{Binding AWidth}" Height="{Binding AHeight}" 
        MinHeight="720" MinWidth="1080">

现在我的问题是。当所有者最小化时我调用此对话框(已设置MinWidth = 1080和MinHeght = 720)时,对话框“ kinda”适合(Window和DialogWindow的ActualWidth和Actual Height相同,但从外观上看,DialogWindow似乎要大一点)比所有者)

Full Screen

但是当我全屏显示时,会发生这种情况:

{{3}}

不仅ActualHeight与属性AHeight(已正确设置为Owner的ActualHeight)不同,而且也不完全位于Owner窗口的中心,而是在第二个屏幕上溢出。是什么原因造成的,我该如何解决?

1 个答案:

答案 0 :(得分:0)

所以我要发布解决它的问题的方法,但是我绝对不知道为什么会这样,所以如果有人有更好的答案,我将检查是否接受。 为了解决我的问题,我删除了宽度和高度的绑定,只是在DialogWindow的构造函数中添加了

this.Width = OwnerActualWidth;
this.Height = OwnerActualHeight;

因为我要在输入中传递这些参数