WPF如何确定包含visualcollection的面板的z顺序是一个itemshost?

时间:2013-12-14 01:26:16

标签: c# wpf xaml

我试图理解渲染顺序是如何工作的,据我所知,渲染引擎在视觉树的进展过程中按顺序渲染。

我目前有一个包含

的Panel
VisualCollection visuals;

并覆盖getvisual子函数。

protected override Visual GetVisualChild(int index)
{
  return visuals[index];
}
protected override int VisualChildrenCount
{
  get
  {
    return visuals.Count;
  }
}

但是,我想知道如何管理面板将相对于视觉集合托管的项目的ZIndex。

如果没有可视化集合,我可以通过在面板的子控件和ItemsControl的项目样式上设置Panel.ZIndex来管理面板的子控件。

据我了解,我可以通过更改视觉集合的顺序来控制visualcollection中项目的呈现顺序。但是,我如何同时做两件事?

1 个答案:

答案 0 :(得分:0)

VisualCollection中的位置设置子元素的索引。添加后,您无法更改索引。默认情况下,ZIndex也是基于此顺序设置的。但是,您可以将ZIndex设置为其他值。这不会改变VisualCollection中的索引。它们彼此独立。