私は wpf アプリケーション用の XAML に取り組んでいますが、やりたいことを実行するのに問題があります。これが私の XAML のサンプルです。
<!-- Tool Bar Tray -->
<ToolBarTray Name="toolBarTray1" DockPanel.Dock="Top">
<!-- File And Edit Tools -->
<ToolBar Name="toolBar1" Band="1" BandIndex="1">
<!-- Regular Items -->
<Button>A</Button>
<Button>B</Button>
<!-- Overflow Menu For Special Items -->
<MenuItem ToolBar.OverflowMode="Always" Header="Special Items">
<MenuItem Header="C"/>
<MenuItem Header="D"/>
</MenuItem>
</ToolBar>
</ToolBarTray>
ツールバーのオーバーフロー ボタンをクリックすると、"Special Items" MenuItem が表示され、その横に小さな矢印が表示され、ネストされた要素を示します。しかし、「スペシャルアイテム」の上にマウスを置くかクリックしようとすると、MenuItems「C」と「D」が表示されません。
MenuItem が Menu の外部で機能することを望んでいましたが、念のため、簡単なことをしようとしました。これらの MenuItems を Menu 内に含め、代わりにこの Menu に ToolBar.OverflowMode="Always" プロパティを指定すると、不要なスタイルが生成されます。矢印はなくなりました。サブメニューをアクティブにするには「特別なアイテム」エントリをクリックする必要があり、サブメニューの位置が少しずれているように見えます。
誰が何が起こっているのか知っていますか?
編集:オーバーフローにメニューを追加すると、私が要求したものが正確に生成されます(大きな驚き)。私が求めているのは、トップレベルのヘッダーとアイテムをサブメニュー レベルに変換する方法です。解決策として、 MSDNのこのコントロール テンプレートの例に目を向けました (以下)。
編集、編集: @gcores (コメント ディスカッション): 本当ですか? 何か不足していますか?
<ToolBar Name="toolBar1" Band="1" BandIndex="4">
<!-- Displayed Buttons -->
<Button>A</Button>
<Button>B</Button>
<!-- Special Items Menu -->
<Menu ToolBar.OverflowMode="Always" >
<MenuItem Style="{StaticResource MenuItemStyle}" Header="Special">
<MenuItem Header="C"/>
<MenuItem Header="D"/>
</MenuItem>
</Menu>
</ToolBar>
このスニペットは私にはうまくいきません。サブメニューを表示するには、[スペシャル] をクリックする必要があります。