VisualCollection для Visual HitTest невидимы?
Я работаю с VisualCollection, Visual и HitTest в WPF и столкнулся с проблемой.
Я попытался сделать собственный визуальный рисунок следующим образом:
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.
Как я могу сделать MyDrawing базовым элементом Visual, чтобы VisualTreeHelper больше не выполнял HitTest внутри?
Большое спасибо.
1 ответ
Вместо рисования Попробуйте следующее.
public class NoHitTestDrawingVisual : DrawingVisual
{
protected override GeometryHitTestResult HitTestCore(GeometryHitTestParameters hitTestParameters)
{
return null;
}
protected override HitTestResult HitTestCore(PointHitTestParameters hitTestParameters)
{
return null;
}
}