Erstellen eine benutzerdefinierte Steuerelement, das ein Knopf ist, der auch einen Artikel und Itemssource hat?

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

  •  06-07-2019
  •  | 
  •  

Frage

Ich versuche, eine SplitButton Steuerelement zu erstellen, die eine ContextMenu verwendet, um seine Einträge anzuzeigen. Die SplitButton ist Ableitung zur Zeit von Button. Ich habe eine PART_DropDownInitiator, dass das kleine Symbol ist der Benutzer klickt auf die ContextMenu für die SplitButton zu bringen bis zu seinen Veröffentlichungen.

Das Problem ist, dass ich eine Standard-ContextMenu Setup innerhalb der SplitButton des Template oder Stil, diese Weise wird der Benutzer des Steuer ich versucht, nicht über es selbst zu tun. Zuerst dachte ich, ich würde nur der Benutzer nur noch die SplitButton.ContextMenu.Items Eigenschaft in XAML festgelegt, aber das scheint nicht möglich zu sein. Nun würde Ich mag eine Items und ItemsSource Eigenschaften zum SplitButton hinzuzufügen, die die ContextMenu innerhalb der Vorlage SplitButton daran binden kann. Und sollte der Benutzer nicht nur die Items oder ItemsSource Eigenschaft in XAML oder Code-Behind auf dem SplitButton setzen müssen ...

Aber sowohl die Items und ItemsSource Eigenschaften scheinen von ItemsControl zu stammen, was ein Problem ist, weil die SplitButton bereits aus Button abzuleiten. Also ich bin nicht sicher, was Irgendwelche Ideen ... zu tun?

War es hilfreich?

Lösung

Wenn Sie die Vererbung Weg gehen, sollen Sie von HeaderedItemsControl ableiten statt, wo Ihr Standard-Control des Header-Inhalt als Inhalt eines Button setzt.

Als Ergebnis können Sie auch Einzelteile / Itemssource erhalten -. Das einzige, was Sie entwickeln müssen, um Ihre Control ist

Schließlich betrachten Sie den Menüabschnitt als ein Popup anstelle eines ContextMenu implementieren. ContextMenu ist ein zweckspezifischen UI-Element (und in der Regel mit einem Rechtsklick gebracht). Weitere Informationen, die Standard-Control von ComboBox in aero.normalcolor.xaml.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top