当需要动态添加、修改、删除控件时,如果要达到最好的效果,肯定不只是把需要的控件添加到容器中,并且还需要把容器中的已有控件进行排序操作(置顶、置底、前移、后移操作)。由于初次接触到wpf,所以对很多知识都不熟悉,现自己动手实现了一个Zindex的操作算法。
doMoveZindex((ui (fui == nowZIndex =maxZindex =nextZindex = -(moveToFront) (nowZIndex == maxZindex) (toBottom) =zi == -= nowZIndex + (FrameworkElement childElement (Canvas.GetZIndex(childElement) ==(maxZindex == -(nowZIndex == = (FrameworkElement childElement zi == -= nowZIndex - (FrameworkElement childElement (Canvas.GetZIndex(childElement) ==(maxZindex == -doMoveZindex(sender, doMoveZindex(sender, doMoveZindex(sender, doMoveZindex(sender, false, true);这样的一个前提条件是容器中的每一个控件的ZIndex值都不会相同。
待解决的问题:现在变化的z顺序,是针对整个容器来说的。如果可以针对控件的重叠区域,进行修改Z顺序,那么速度应该会得到相应的提升。