我試圖在分割按鈕下方有一個下拉菜單。其中一些menuItem應該有子菜單項。如果你想要一個例子,點擊Firefox中的書籤按鈕(右上角)。帶菜單項和子菜單項的Xceed分割按鈕
我無法使用Menu,因爲它總是水平放置。所以我決定用一個StackPanel:
<Window x:Class="WpfApplication3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
Title="MainWindow" Height="350" Width="525">
<Grid>
<xctk:SplitButton Content="SplitButton" BorderThickness="1" BorderBrush="Black" Margin="0,0,408,290">
<xctk:SplitButton.DropDownContent>
<StackPanel Width="161" HorizontalAlignment="Left">
<MenuItem Header="MenuItem1" HorizontalAlignment="Left" Width="517">
<MenuItem.Items>
<MenuItem Header="submenuItem1"/>
<MenuItem Header="submenuItem2"/>
</MenuItem.Items>
</MenuItem>
<MenuItem Header="MenuItem2"/>
<MenuItem Header="MenuItem3"/>
</StackPanel>
</xctk:SplitButton.DropDownContent>
</xctk:SplitButton>
</Grid>
這裏的問題是,子菜單項顯示不出來。他們甚至沒有旁邊的小箭頭。你可以在沒有SplitButton的情況下執行此操作,只需將其中的堆棧面板和所有內容都留下,就會遇到同樣的問題。我試着把父菜單項放在它自己的標籤中,但是我希望子菜單項出現在它們父項的右側(就像firefox例子一樣:假設你的Firefox窗口沒有最大化,並且你已經允許足夠的屏幕空間以顯示該項目)。
alrh's CustomControl是相當有幫助的。我有一些麻煩把它帶到我的項目,所以我最終只是把它作爲一個DLL。 – NickLokarno