什么是WPF等效于Paint事件中的Windows窗体Region.Xor?

时间:2013-09-06 23:10:15

标签: c# c wpf paint workflow-foundation

我正在尝试将此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);
}

1 个答案:

答案 0 :(得分:1)

WPF在图形方面不像WinForms那样工作。你不能真正绘制形状,你必须将它们放入你的内容。

Geometry应该是Region的良好替代品。您可以使用Geometry.Combine并指定GeometryCombineMode.Xor来复制绘图代码。

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

要实际显示Geometry,请将其放在Path中,该{{3}}可用作控件的内容。