.net – WPF中的BringToFront
我需要在WPF中引導一個自定義控制元件.
虛擬碼
OnMouseDown() { if (this.parent != null) this.parent.BringToFront(this); }
我知道,我知道有一個ZIndex,但仍然不明白如何將簡單的WinForm BringToFront替換為parent.SetZIndex(這個,MaxZIndex(parent)?1)?
也許在WPF這樣一個很酷的事情中有更好的方法嗎?
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); } }
http://stackoverflow.com/questions/5666754/bringtofront-in-wpf