C# VisualCollection到VisualHittest不可见?
我在WPF中使用VisualCollection、Visual和HitTest,遇到了一个问题 我尝试按如下方式制作自定义视觉图形: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
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
此处)本身已呈现(并因此命中可测试)内容。