public override bool HitTest(Point2F point) { EllipseGeometry g = d2DFactory.CreateEllipseGeometry(ellipse); bool ret = g.FillContainsPoint(point, 1); g.Dispose(); return(ret); }
protected override void OnCleanUpDeviceIndependentResources() { base.OnCleanUpDeviceIndependentResources(); _strokeStyle.Dispose(); _textFormat.Dispose(); _circleGeometry1.Dispose(); _circleGeometry2.Dispose(); _geometryUnion.Dispose(); _geometryIntersect.Dispose(); _geometryXor.Dispose(); _geometryExclude.Dispose(); }
public override bool HitTest(Point2F point) { foreach (var ellipse in ellipses) { EllipseGeometry g = d2DFactory.CreateEllipseGeometry(new Ellipse( new Point2F( (ellipse.rect.Left + ellipse.rect.Right) / 2, (ellipse.rect.Top + ellipse.rect.Bottom) / 2), ellipse.rect.Width / 2, ellipse.rect.Height / 2)); bool ret = g.FillContainsPoint(point, 1); g.Dispose(); if (ret) { return(true); } } return(false); }
public IDisposable SetCircleClipping(System.Drawing.Point center, int radius) { DisposableObject disposableObject = new DisposableObject(); AddDrawRequest((target) => { LayerParameters parm = new LayerParameters(); Layer layer = new Layer(target); Ellipse circle = new Ellipse(Vector2FromGDIPoint(center), radius, radius); EllipseGeometry elli = new EllipseGeometry(target.Factory, circle); disposableObject.OnDisposed += (s, e) => { target.PopLayer(); layer.Dispose(); elli.Dispose(); }; parm.GeometricMask = elli; target.PushLayer(ref parm, layer); }); return(disposableObject); }