WPF で Geometry を使用して uielement をヒット テストする方法はありますか? 試してみVisualTreeHelper
ましたが、うまくいきません。UIElement
マウスがポイントでクリックすると、マウスダウンイベントが発生する可能性があります。
ただし、ジオメトリが an と交差した場合にイベントを発生させたいと考えていUIElement
ます。どうすればそうできますか?
public class MyUI : UIElement
{
protected override void OnReder(DrawingContext dc)
{
dc.DrawRectangle(..., new Rect(12,12,120,120));
...
}
}
MyUI ui = new MyUI();
Grid grid = new Grid();
grid.Children.Add(ui);
EllipseGeometry eg = new EllipseGeometry(new Rect(24,24,40,40));
VisualTreeHelper.HitTest(grid, null, HitTestResult, new GeometryHitTestParameters(eg));
if (results.Count > 0)
MessageBox.Show("Hit Count = "+results.ToString());
...
List<DependencyObject> results;
public HitTestResultBehavior HitTestResult(HitTestResult result)
{
results.Add(result.VisualHit);
return HitTestResultBehavior.Continue;
}