تقييم الموضوع :
  • 1 أصوات - بمعدل 5
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف يتم تفعيل اختصار من لوحة المفاتيح للقائمة Menu
#1
Question 
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
قمت بإضافة 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
ولكن أيضاً لم أصل لنتيجة !!..
الملف بالمرفقات وأتمنى المساعدة وتوضيح هذه الجزئية
وشكر الله جهودكم جميعاً


الملفات المرفقة
.rar   Menu.rar (الحجم : 77.53 ك ب / التحميلات : 20)
فاعلم أنه لا إله إلا الله
الرد }}}}
تم الشكر بواسطة:
#2
^

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

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


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

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






الملفات المرفقة
.rar   Menu.rar (الحجم : 80.77 ك ب / التحميلات : 37)
الرد }}}}
تم الشكر بواسطة: السندبااد , Mostafa Saad
#3
السلام عليكم ورحمة الله وبركاته
ألف شكر لك أستاذنا الحبيب الغالي على التعديل ، وبعد :
بالفعل دوخة
يعني كل قائمة تحتاج إلى ثلاثة أسطر برمجية موزعة في البرنامج ، يعني لو كان في البرنامج 20 قائمة فسنحتاج لـ 60 سطراً
!!!!!
في الفيجوال بيسك سابقاً كانت مسألة الاختصارات آلية
يعني بمجرد أن تختار الاختصار يتم تنفيذه آلياً بالنقر على لوحة المفاتيح دون أي كودٍ آخر
لا أعرف ما سبب تعقيدها هنا
؟!؟!؟

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


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم