C# 在Paint事件中,WPF与Windows窗体区域.Xor的等价物是什么?

C# 在Paint事件中,WPF与Windows窗体区域.Xor的等价物是什么?,c#,c,wpf,paint,workflow-foundation,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.Gr

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

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

应能很好地替代
区域
。可以使用和指定复制图形代码

这就是制作矩形的方法。其他形状也有类似的类


若要实际显示
几何图形
,请将其放在一个可以用作控件内容的位置。

欢迎使用SO!我已编辑了您的代码,以便正确显示。请阅读从winforms升级到WPF时所需的内容。您可以使用
OnRender
覆盖实际绘制形状(以及几何体对象)。这就是
Path
的工作方式。需要记住的重要一点是WPF使用保留模式图形(与GDI的即时模式相反)。