0
我生成並設置自己的上下文菜單和團體項目進入子菜單按如何從MenuItem的代碼打開子菜單三角形?
SubTitle.Items.Add(..);
這些彈出子菜單做工精細,幾乎都是不錯..但是...
我不能讓子菜單三角形顯示除非我設置MenuItem角色(您可以設置每個觸發器的樣式)爲例如TopLevelHeader等
MenuItem.Role沒有直接的setter,所以我將不得不創建我的子菜單MenuItems作爲XAML靜態對象,然後賦予不錯的樣式,所以他們也會得到子菜單三角形。
問題是,我的上下文菜單完全由編程方式派生,例如,一個數據庫,如果我重新使用靜態XAML MenuItems我需要設置垃圾收集器到他們打破父母的關係,纔可以重用他們,和/或我必須事先不知道這些元素。
有一些辦法:
MenuItemThatIsTitle.Role = MenuItemRole.TopLevelHeader;
//(in order to get the triangle?)
..from的代碼?
===
示例代碼 - 從代碼添加一個子菜單上下文菜單:
contextM.Items.Add(new Separator());
var TitleH = new MenuItem
{
Header = SettingsDomain.Default.TitleHeader,
FontWeight = FontWeights.Bold,
Height = 25,
IsEnabled = true,
};
if (!(TitleH.Items.Count > 0))
//TitleH.Role = MenuItemRole.TopLevelHeader; to get the triangle..
{
var listmen = List.Select(c => cMenuItem(c)).ToList();
TitleH.ItemsSource = listmen;
}
contextM.Items.Add(TitleH);
contextM.Items.Add(new Separator());
NB:沒有相關XAML
什麼?你爲什麼不用'ItemsSource'來代替?你試圖讓WPF符合你的意願,這是無法完成的。這是相反的方式。 –
以及我現在嘗試你的建議,並將項目添加到列表,然後我給了ItemsSource ...作品一樣,沒有三角形出現? – Ulthien
發佈相關代碼和XAML。 –