我试图理解渲染顺序是如何工作的,据我所知,渲染引擎在视觉树的进展过程中按顺序渲染。
我目前有一个包含
的PanelVisualCollection visuals;
并覆盖getvisual子函数。
protected override Visual GetVisualChild(int index)
{
return visuals[index];
}
protected override int VisualChildrenCount
{
get
{
return visuals.Count;
}
}
但是,我想知道如何管理面板将相对于视觉集合托管的项目的ZIndex。
如果没有可视化集合,我可以通过在面板的子控件和ItemsControl的项目样式上设置Panel.ZIndex来管理面板的子控件。
据我了解,我可以通过更改视觉集合的顺序来控制visualcollection中项目的呈现顺序。但是,我如何同时做两件事?
答案 0 :(得分:0)
VisualCollection中的位置设置子元素的索引。添加后,您无法更改索引。默认情况下,ZIndex也是基于此顺序设置的。但是,您可以将ZIndex设置为其他值。这不会改变VisualCollection中的索引。它们彼此独立。