منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] كيف يتم تفعيل اختصار من لوحة المفاتيح للقائمة Menu - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4)
+--- قسم : قسم البرمجة بتقنية WPF (http://vb4arb.com/vb/forumdisplay.php?fid=86)
+--- الموضوع : [سؤال] كيف يتم تفعيل اختصار من لوحة المفاتيح للقائمة Menu (/showthread.php?tid=3850)



كيف يتم تفعيل اختصار من لوحة المفاتيح للقائمة Menu - السندبااد - 18-09-14

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
قمت بإضافة Menu للنافذة وأضفت لها صورة واختصارات من لوحة المفاتيح كما ستشاهدون بالمرفق
ولكن عند النقر على هذا الاختصار من لوحة المفاتيح لا يحدث أي شيء ولا يتم تنفيذ الأمر الخاص بالقائمة
مثلاً : القائمة Exit لها اختصار Ctrl+E مهمتها إغلاق النافذة ولكن عند النقر على هذين المفتاحين من لوحة المفاتيح لا يحدث شيء

بحثت في النت فوجدت أنه يجب أن أعرف الاختصارات في النافذة وبالفعل قمت بذلك وأضفت هذا الكود :
PHP كود :
<Window.InputBindings>
        <
KeyBinding x:Name="ExitKeyBinding" Modifiers="Ctrl" Key="E"  />
        <
KeyBinding x:Name="MsgKeyBinding" Modifiers="Ctrl" Key="M"  />
 </
Window.InputBindings
ولكن أيضاً لم أصل لنتيجة !!..
الملف بالمرفقات وأتمنى المساعدة وتوضيح هذه الجزئية
وشكر الله جهودكم جميعاً



RE: كيف يتم تفعيل اختصار من لوحة المفاتيح للقائمة Menu - الشاكي لله - 18-09-14

^

الـ Input Binding لابد ان يستعمل مع الRouted Command :
إقتباس :InputBinding

Represents a binding between an InputGesture and a command. The command is potentially a RoutedCommand.


لذلك الشغلة فيها دوخة شوي للي ماتعود على استخدام الCommand في WPF

المهم ـانا عدلت لك المشروع وهو في المرفقات ويعمل بشكل ممتاز







RE: كيف يتم تفعيل اختصار من لوحة المفاتيح للقائمة Menu - السندبااد - 19-09-14

السلام عليكم ورحمة الله وبركاته
ألف شكر لك أستاذنا الحبيب الغالي على التعديل ، وبعد :
بالفعل دوخة
يعني كل قائمة تحتاج إلى ثلاثة أسطر برمجية موزعة في البرنامج ، يعني لو كان في البرنامج 20 قائمة فسنحتاج لـ 60 سطراً
!!!!!
في الفيجوال بيسك سابقاً كانت مسألة الاختصارات آلية
يعني بمجرد أن تختار الاختصار يتم تنفيذه آلياً بالنقر على لوحة المفاتيح دون أي كودٍ آخر
لا أعرف ما سبب تعقيدها هنا
؟!؟!؟

أيضاً هنالك ملاحظة على التعديل :
البرنامج لم يعد يسمح لك إلا بالنقر على اختصار واحد فقط
يعني : لو نقرت Ctrl+M سيخرج لي الأمر المرافق للقائمة MsgBox ولكن لو قمت بالنقر مرة أخرى Ctrl+M لن يخرج شيء
وحتى لو قمت بالنقر على اختصار آخر Ctrl+E لن يستجيب
أيضاً لو نقرت بالماوس على القائمة المسماة MsgBox وخرجت لك الرسالة وقمت بإغلاق الرسالة
الآن جرب أن تنقر الاختصار من لوحة المفاتيح كذلك لن يستجيب لك
لا حظت أنه لا يستجيب حتى تقوم بعمل شيء آخر مثل تصغير النافذة أو ما شابه
فما الحل جزاك الله خيراً
مع ملاحظة أن هذه المشكلة موجودة على نظام ويندوز سفن وغير موجودة على نظام XP
؟!؟!؟