سؤال

أريد أن أترك تطبيق WPF الخاص بي عند بدء التشغيل على الشاشة الأساسية. أعلم أنني لا بد لي من تعيين mywindow.left و mywindow.top، ولكن من أين أحصل على القيم؟

وجدت System.Windows.Forms.Screen.PrimaryScreen, ، وهذا يبدو أنه ليس WPF. هل هناك بديل WPF يعطيني دقة الشاشة أو شيء من هذا القبيل؟

هل كانت مفيدة؟

المحلول

ضع هذا في منشئ النافذة الخاص بك

WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

.NET Frameworksupported في: 4، 3.5، 3.0

.NET Framework Client ProfilesSupported في: 4، 3.5 SP1

نصائح أخرى

XAML.

WindowStartupLocation="CenterScreen"

لا يزال بإمكانك استخدام فئة الشاشة من تطبيق WPF. تحتاج فقط إلى الرجوع إلى الجمعية System.windows.forms من طلبك. بمجرد القيام بذلك، (والرجوع إلى النظام .DRAWING للمثال أدناه):

Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;

... يعمل بشكل جيد فقط.

هل فكرت في تحديد نافذة نافذة الإطار الرئيسي الخاص بك إلى مراكزك؟

ماذا عن فئة SystemParameters في عرض تقديمي؟ لديها أ منطقة العمل الممتلكات التي يبدو أنها ما تبحث عنه.

ولكن، لماذا لن تحدد النافذة. Windowstartuplocation العمل؟ Centerscreen هي واحدة من قيم المعهد. هل يجب عليك تعديل التركيز؟

لا تحتاج إلى الرجوع إلى System.Windows.Forms التجمع من طلبك. بدلا من ذلك، يمكنك استخدام System.Windows.SystemParameters.WorkArea. وبعد هذا يعادل System.Windows.Forms.Screen.PrimaryScreen.WorkingArea!

لا يوجد ما يعادل WPF. System.Windows.Forms.Screen لا يزال جزءا من .NET Framework ويمكن استخدامه من WPF على الرغم من.

يرى هذا السؤال لمزيد من التفاصيل، ولكن يمكنك استخدام المكالمات المتعلقة بشاشات باستخدام WindowInteropHelper فئة لالتفاف عنصر تحكم WPF الخاص بك.

var window = new MyWindow();

لمركز استخدام الشاشة:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

لمركز استخدام النافذة الأصل:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top