1

を使用してアイテムを表示するSplitButtonコントロールを作成しようとしています。ContextMenuSplitButton現在 から派生していButtonます。PART_DropDownInitiatorユーザーがクリックしてアイテムを表示するために表示する小さなアイコンですContextMenuSplitButton

ContextMenu問題は、またはスタイル内でデフォルトをセットアップしようとしていることですSplitButtonTemplateこのように、コントロールのユーザーは自分でそれを行う必要はありません。最初は、ユーザーに xaml でプロパティを設定させるだけだと思っていましたSplitButton.ContextMenu.Itemsが、それは不可能のようです。ここで、のテンプレート内でバインドできるItemsItemsSourceプロパティをに追加したいと思います。また、ユーザーはxaml またはコード ビハインドでorプロパティを設定する必要があるだけではありません。SplitButtonContextMenuSplitButtonItemsItemsSourceSplitButton

しかし、ItemsItemsSourceプロパティの両方が から派生しているように見えます。これは、が既に から派生してItemsControlいるため問題です。どうすればいいのかわからない...何かアイデアはありますか?SplitButtonButton

4

1 に答える 1

1

継承ルートを使用する場合は、代わりに HeaderedItemsControl から派生する必要があります。ここでは、デフォルトの ControlTemplate がヘッダー コンテンツを Button のコンテンツとして配置します。

その結果、Items/ItemsSource も取得します。開発する必要があるのは ControlTemplate だけです。

最後に、メニュー部分を ContextMenu ではなく Popup として実装することを検討してください。ContextMenu は目的に特化した UI 要素です (通常は右クリックで表示されます)。詳細については、aero.normalcolor.xaml の ComboBox の既定の ControlTemplate を参照してください。

于 2009-06-17T16:26:35.647 に答える