Tidak dapat mengatur dengan benar ukuran Jendela Dialog dan target penempatan saya

Saya telah membangun jendela dialog yang saya rencanakan untuk digunakan di seluruh aplikasi saya alih-alih menggunakan kotak pesan. Kapan pun saya perlu menggunakannya, saya akan menyebutnya dalam kode di belakang Jendela saya. Saat ini saya sedang bekerja dengan sintaks ini:

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

ini adalah konstruktor Jendela Dialog saya

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;
    -----
}

dan ini adalah tag Window pembuka di 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">

Sekarang masalah saya adalah. Ketika saya memanggil dialog ini ketika pemiliknya Diminimalkan (setelah mengatur MinWidth = 1080 dan MinHeght = 720) dialog "agak" cocok (Lebar Aktual dan Tinggi Aktual dari Jendela dan DialogWindow sama, tetapi secara visual DialogWindow tampak sedikit lebih besar daripada Pemiliknya)

Diminimalkan

Tetapi ketika saya menggunakan layar penuh, yang terjadi adalah ini:

Layar Penuh

Tidak hanya ActualHeight berbeda dengan properti AHeight (yang diatur dengan benar ke ActualHeight Pemilik), tetapi juga tidak terpusat pada jendela Pemilik sama sekali, tetapi meluap di layar kedua saya. Apa penyebabnya, dan bagaimana cara mengatasinya?


person Daniele Sartori    schedule 18.01.2019    source sumber
comment
ketika pemiliknya Diminimalkan - apakah diminimalkan berarti ukuran minimum? Tidak ada apa pun yang diminimalkan pada tangkapan layar. Jika Anda ingin mengikat ke ActualHeigt, mungkin, pastikan untuk memahami perbedaan di antara keduanya.   -  person Sinatr    schedule 18.01.2019
comment
@Sinatr di tangkapan layar pertama saya memotong desktop saya. Diminimalkan dalam artian bukan layar penuh dan mendapatkan MinHeight dan MiniWidth yang telah saya atur. Saya akan memeriksa jawaban itu untuk melihat apakah saya melakukan kesalahan.   -  person Daniele Sartori    schedule 18.01.2019
comment
Anda tidak perlu mengikat, karena Anda meneruskan parameter owner (periksa pedoman untuk penamaan btw) Anda dapat mengakses ActualHeight dan lebarnya di konstruktor.   -  person Sinatr    schedule 18.01.2019


Jawaban (1)


Jadi saya akan memposting apa yang memecahkan masalah saya, tetapi saya sama sekali tidak tahu mengapa itu terjadi, jadi jika ada yang punya jawaban lebih baik saya akan memeriksanya sebagai diterima. Untuk mengatasi masalah saya, saya menghapus pengikatan untuk lebar dan tinggi dan cukup menambahkan konstruktor DialogWindow

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

karena saya meneruskan parameter tersebut ke input

person Daniele Sartori    schedule 18.01.2019