【发布时间】:2013-04-20 00:41:42
【问题描述】:
我创建了几个 MenuItems(不是在 XAML 中)所以我将它们添加到父项:
( Parent_Menu as MenuItem ).Items.Add( Menu_Item );
然后我通过 VisualTree 列表(循环)应用了我的样式。但是这些样式不适用于新的 MenuItems 。这是我的风格应用代码:
else if ( Visual is MenuItem )
{
MenuItem menuItem = Visual as MenuItem;
menuItem.Style = D_Interface.Style_Menu;
}
父菜单项获得了样式,但没有新的子菜单项。 所以我只是用调试器检查了哪些项目通过可视化树链接到父项目,我在父项目中找不到新的子项目。我猜它们在逻辑树中也没有链接到父级。
我检查了新子项在全局视觉\逻辑树中的位置,正如我从调试器中了解到的那样,它们没有链接到任何不在视觉树中的父项,也不在逻辑树中,甚至没有链接到窗口本身.
我的结论是它们仅通过“项目”列表与父 MenuItem 相关......这与 MenuItems 自动成为父 Menu 控件的子控件不同。
有人知道如何使动态创建的 MenuItems 成为可视树中父级的子级吗?
【问题讨论】:
标签: c# wpf menuitem visual-tree logical-tree