none
wpf 控件置于顶层canvas容器 RRS feed

  • 问题

  • 在winfrom窗体里面有一个BringToFront()的方法

    请问在Wpf里面有没有类似的方法呢

    我有很多控件在canvas容器中!我想点击一下控件就将它置顶,置低!

    2012年10月10日 7:48

答案

  • 动态设置Canvas.ZIndex继承自System.Windows.Controls.Panel。

    Canvas.SetZIndex(rect, zindex);


    Wanpeng wanpeng.ones@gmail.com

    • 已标记为答案 xi_meng 2012年10月17日 4:27
    2012年10月10日 9:46

全部回复

  • 动态设置Canvas.ZIndex继承自System.Windows.Controls.Panel。

    Canvas.SetZIndex(rect, zindex);


    Wanpeng wanpeng.ones@gmail.com

    • 已标记为答案 xi_meng 2012年10月17日 4:27
    2012年10月10日 9:46
  • 参考下面的代码:

     public static class FrameworkElementExt
      {
        public static void BringToFront(this FrameworkElement element)
        {
          if (element == null) return;
    
          Panel parent = element.Parent as Panel;
          if (parent == null) return;
    
          var maxZ = parent.Children.OfType<UIElement>()
            .Where(x => x != element)
            .Select(x => Panel.GetZIndex(x))
            .Max();
          Panel.SetZIndex(element, maxZ + 1);
        }
      }


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年10月11日 6:36
    版主
  • Wpf中的Window.Activate方法就是.
    2012年10月16日 8:38