Saya ingin memusatkan aplikasi WPF saya saat startup di layar utama. Saya tahu saya harus menyetel myWindow.Left dan myWindow.Top, tetapi dari mana saya mendapatkan nilainya?
Saya menemukan System.Windows.Forms.Screen.PrimaryScreen
, yang ternyata bukan WPF. Apakah ada alternatif WPF yang memberi saya resolusi layar atau semacamnya?
c#
wpf
screen-positioning
Marcel B
sumber
sumber
WindowStartupLocation.CenterOwner
untuk beberapa jendela anakManual
. Ref: msdn.microsoft.com/en-us/library/…xaml
sumber
Anda masih dapat menggunakan kelas Layar dari aplikasi WPF. Anda hanya perlu mereferensikan perakitan System.Windows.Forms dari aplikasi Anda. Setelah Anda selesai melakukannya, (dan mereferensikan System.Drawing untuk contoh di bawah ini):
... bekerja dengan baik.
Sudahkah Anda mempertimbangkan untuk menyetel properti jendela utama Anda WindowStartupLocation ke CenterScreen?
sumber
Bagaimana dengan kelas SystemParameters di PresentationFramework? Ini memiliki properti WorkArea yang tampaknya menjadi apa yang Anda cari.
Tapi, mengapa pengaturan Window.WindowStartupLocation tidak berfungsi? CenterScreen adalah salah satu nilai enum. Apakah Anda harus menyesuaikan pemusatan?
sumber
Anda tidak perlu mereferensikan
System.Windows.Forms
rakitan dari aplikasi Anda. Sebagai gantinya, Anda bisa menggunakanSystem.Windows.SystemParameters.WorkArea
. Ini setara denganSystem.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!sumber
Tidak ada yang setara dengan WPF.
System.Windows.Forms.Screen
masih merupakan bagian dari kerangka .NET dan dapat digunakan dari WPF.Lihat pertanyaan ini untuk lebih jelasnya, tetapi Anda dapat menggunakan panggilan yang berkaitan dengan layar dengan menggunakan
WindowInteropHelper
kelas untuk menggabungkan kontrol WPF Anda.sumber
untuk penggunaan tengah layar:
untuk pusat penggunaan jendela induk:
sumber
Saya lebih suka memasukkannya ke dalam kode WPF.
Dalam
[WindowName].xaml
file:sumber