은 당연히, 당신은 Transparent
자사의 Background
속성을 설정하여 투명 컨트롤을 할 수 있습니다. 모든 컨트롤을 사용하여 도움말 정보를 표시 할 수 있으며 XAML 아래쪽에 선언되어있는 한 다른 컨트롤 위에 나타납니다. Panel.ZIndex
속성을 명시 적으로 설정하여 'Z'순서를 늘리는 것이 좋습니다.
이 컨트롤을 배치하는 방법은 위치가 마우스 포인터의 위치와 관련이 있다고 가정합니다. 이 경우, 당신이 뭔가를 할 수 있습니다 :
HitTestResult hitTestResult =
VisualTreeHelper.HitTest(adornedUIElement, e.GetPosition(adornedUIElement));
Control controlUnderMouse = hitTestResult.VisualHit.GetParentOfType<Control>();
이 ...
public static T GetParentOfType<T>(this DependencyObject element) where T : DependencyObject
{
Type type = typeof(T);
if (element == null) return null;
DependencyObject parent = VisualTreeHelper.GetParent(element);
if (parent == null && ((FrameworkElement)element).Parent is DependencyObject) parent = ((FrameworkElement)element).Parent;
if (parent == null) return null;
else if (parent.GetType() == type || parent.GetType().IsSubclassOf(type)) return parent as T;
return GetParentOfType<T>(parent);
}
이 GetParentOfType
방법은 Extension method이며 static
클래스에 추가해야합니다.
WPF의 Adorner 지원에 대해 살펴 보셨습니까? 별도의 창보다는 AdornerLayer에 아이콘을 배치하는 것이 더 나을 수도 있습니다. 위치를 지정하는 것이 더 쉬울 것입니다. –