C# VisualCollection到VisualHittest不可见?

C# VisualCollection到VisualHittest不可见?,c#,wpf,visualtreehelper,C#,Wpf,Visualtreehelper,我在WPF中使用VisualCollection、Visual和HitTest,遇到了一个问题 我尝试按如下方式制作自定义视觉图形: public class MyDrawing : Visual { VisualCollection vc; public MyDrawing() { vc = new VisualCollection(this); } // ... DrawingVisual rectangle = new

我在WPF中使用VisualCollection、Visual和HitTest,遇到了一个问题

我尝试按如下方式制作自定义视觉图形:

public class MyDrawing : Visual
{
    VisualCollection vc;

    public MyDrawing()
    {
        vc = new VisualCollection(this);
    }

     // ...
     DrawingVisual rectangle = new DrawingVisual();
     // ...

     vc.Add(rectangle);
}

public class DrawingArea : FrameworkElement
{
    VisualCollection vc;

    public DrawingArea()
    {
        vc = new VisualCollection(this);

        MyDrawing md1 = new MyDrawing();

        vc.Add(md1);
    }    

    public void TryToHit(Point p)
    {      
        HitTestResult result = VisualTreeHelper.HitTest(this, p);
    }    
}
然后我发现结果是矩形,而不是md1

我怎样才能使我的绘图成为基本的视觉元素,这样VisualTreeHelper就不会在内部进一步执行HitTest了


非常感谢。

不用画图。试试下面这个

  public class NoHitTestDrawingVisual : DrawingVisual
    {

        protected override GeometryHitTestResult HitTestCore(GeometryHitTestParameters hitTestParameters)
        {
            return null;
        }

        protected override HitTestResult HitTestCore(PointHitTestParameters hitTestParameters)
        {
            return null;
        }

    }

请参阅,特别是本节。添加一个您尝试过的具体示例。恐怕这不会起作用,除非父级visual(
MyDrawing md1
此处)本身已呈现(并因此命中可测试)内容。