0

我正在尝试将此 WinForms 代码移至 WPF,但没有任何Paint事件。

private void OnPaint(object sender, PaintEventArgs e)
{
    var region = new Region(new Rectangle(0, 0, this.Width, this.Height));
    var rectangle = new Rectangle(0, 0, 50, 50);
    region.Xor(rectangle);
    e.Graphics.FillRegion(Brushes.Black, region);
}
4

1 回答 1

1

WPF 在图形方面不像 WinForms 那样工作。您实际上无法绘制形状,您必须将它们放入您的内容中。

Geometry应该作为Region. 您可以使用Geometry.Combine并指定GeometryCombineMode.Xor复制您的绘图代码。

RectangleGeometry是你如何制作矩形。其他形状也有类似的类。

要实际显示Geometry,请将其放入Path可用作控件内容的 中。

于 2013-09-06T23:27:08.587 回答