أرغب في تمرير مقبض نافذة Win32 (على سبيل المثال من Microsoft Word أو Excel أو Outlook) إلى TaskDialog.ShowDialog()
. لهذا ، يبدو أنه كافٍ لكسب TaskDialog.ShowDialog(IntPtr owner)
public
بدلاً من private
.
ما رأيك في جعل هذه الطريقة public
؟ يمكنني تقديم العلاقات العامة إذا كنت تريد.
شكرا!
مرحبًا @ mu88 ، من حيث المبدأ ، أنا موافق على هذا التغيير إذا كانت هناك سيناريوهات يقوم فيها GetActiveWindow
بإرجاع المقبض إلى نافذة غير صحيحة IntPtr
- هل هذا هو الحال؟
هل تستخدم TaskDialog من داخل وظيفة Excel الإضافية أو ما شابه ذلك؟
إذا كان الأمر كذلك ، فهل يمثل تمرير null
إلى Task.ShowDialog(Window)
معالجة خاطئة للمالك؟
شكرًا على عودتك بسرعة ، augustoproiete !
نحن نعمل على تطوير تطبيق WPF. يتواصل هذا التطبيق مع Excel عبر COM ويسترد مقبض نافذة Excel كـ IntPtr
عبر Process.MainWindowHandle
. نريد الآن إظهار TaskDialog
مخصص داخل Excel - لذلك يجب أن يكون مالك مربع الحوار هو مقبض نافذة Excel. لذلك في حالتنا ، لا توجد نافذة WPF يمكنها العمل كمالك لأن Excel لا يعتمد على WPF.
لقد جربته عن طريق الاتصال بـ private TaskDialogButton ShowDialog(IntPtr owner)
عبر التفكير ويعمل مثل السحر.
يبدو ذلك جيدا. سآخذ العلاقات العامة ثم إذا كنت ترغب في ذلك.
نقاط المكافأة إذا كان بإمكانك إضافة نفس الحمل الزائد إلى مربعات الحوار الأخرى أيضًا ، من أجل الاتساق.
نعم سأذهب لهذا العلاقات العامة
مغلق عبر # 19
هل يمكنك إنشاء إصدار جديد لـ NuGet ، augustoproiete ؟
اكيد @ mu88. سأقوم بدفع نسخة جديدة إلى nuget.org بحلول مساء الغد
تم نشر حزمة mu88 NuGet @ على موقع nuget.org - https://www.nuget.org/packages/Ookii.Dialogs.Wpf/1.2.0
شكرا augustoproiete ! لقد قمت بدمج الحزمة الجديدة وهي تعمل مثل السحر 🥳