إنشاء عنصر تحكم مخصص وهذا هو زر التي لديها أيضا عناصر وItemsSource؟

StackOverflow https://stackoverflow.com/questions/1007958

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا أحاول لإنشاء عنصر تحكم SplitButton يستخدم ContextMenu لعرض بنودها. وSplitButton وتستمد حاليا من Button. لدي PART_DropDownInitiator هذا هو رمز قليلا ينقر المستخدم على لإظهار ContextMenu لSplitButton لاظهار بنودها.

والمشكلة هي أن أحاول لإعداد ContextMenu الافتراضي داخل SplitButton وTemplate أو أسلوب، وبهذه الطريقة لا يكون لدى المستخدم للسيطرة على القيام بذلك بأنفسهم. في البداية كنت احسب أن يكون مجرد المستخدم فقط تعيين الخاصية SplitButton.ContextMenu.Items في XAML، ولكن هذا لا يبدو ممكنا. الآن أود أن إضافة Items وItemsSource خصائص لSplitButton أن ContextMenu داخل القالب SplitButton يمكن ربط ذلك. ويجب على المستخدم من مجرد أن تعيين Items أو الممتلكات ItemsSource في XAML أو التعليمات البرمجية الخلفية على SplitButton ...

ولكن، كل من Items وخصائص ItemsSource يبدو أن تنشأ من ItemsControl، وهي مشكلة لأن SplitButton وتستمد بالفعل من Button. لذلك أنا لست متأكدا ما يجب القيام به ... أي أفكار؟

هل كانت مفيدة؟

المحلول

إذا كنت تسير في طريق الميراث، يجب أن تنبع من HeaderedItemsControl بدلا من ذلك، حيث يضع ControlTemplate الافتراضي محتوى رأس كما محتويات زر.

ونتيجة لذلك، يمكنك أيضا الحصول على مقتنيات / ItemsSource - الشيء الوحيد الذي لديك لوضع غير ControlTemplate بك

وأخيرا، النظر في تنفيذ جزء القائمة باعتبارها منبثقة بدلا من ContextMenu. في ContextMenu هي عنصر واجهة المستخدم لأغراض محددة (وجلبت عموما حتى مع بزر الماوس الأيمن). لمزيد من المعلومات، راجع ControlTemplate الافتراضية تحرير وسرد في aero.normalcolor.xaml.

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