我创建了几个 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 自动成为父菜单控件的子项不同。
有人知道如何使动态创建的 MenuItems 成为可视树中父级的子级吗?