كيفية توسيط تطبيق WPF على الشاشة؟
-
06-09-2019 - |
سؤال
أريد أن أترك تطبيق 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;