سؤال

أريد استخدام WPF Windows في تطبيق Win32 Legacy. أود أن أتصرفهم بطريقة مماثلة ، مثل نافذة WPF يتم عرضها دائمًا أعلى نافذة Win32.

لهذا أرغب في تعيين مالك نافذة WPF على Win32 Windows ، لكن ليس لدي أي فكرة عن كيفية تحقيق ذلك.

أي مساعدة هنا؟

نظرًا لأن الإجابة مخفية خلف بعض الرابط ، هنا الكود الذي قام بالخدعة:

System::Windows::Interop::WindowInteropHelper^ helper = gcnew System::Windows::Interop::WindowInteropHelper(myWpfChildWindow);
helper->Owner = (System::IntPtr)myMainWindowHWND;
هل كانت مفيدة؟

المحلول

توضح هذه المقالة كيفية الحصول على المقابض لكلا وكذلك كيفية جعل نافذة WPF تصبح تراكب شفاف لنافذة Win32.

http://blogs.microsoft.co.il/blogs/tamir/archive/2007/04/11/transparent-wpf-control-over-unmenged-window handle.aspx

تستخدم هذه المقالة windowinterophelper لإنجاز وظائف مماثلة.

http://blogs.msdn.com/wpfsdk/archive/2007/04/03/centering-wpf-windows-with-wpf-and-non-wonerwindows.aspx

صفحة MSDN على WindowInterophelper:

http://msdn.microsoft.com/en-us/library/system.windows.interop.windowinterophelper.aspx

أتمنى أن يساعد ذلك ، إد

نصائح أخرى

ماذا عن SetParent()؟ أعلم أنه يعمل عند جعل نافذة WPF طفل MDI من نموذج Windows.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top