我正在尝试将此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);
}
答案 0 :(得分:1)
WPF在图形方面不像WinForms那样工作。你不能真正绘制形状,你必须将它们放入你的内容。
Geometry
应该是Region
的良好替代品。您可以使用Geometry.Combine
并指定GeometryCombineMode.Xor
来复制绘图代码。
RectangleGeometry
是如何制作矩形的。其他形状也有类似的类。
要实际显示Geometry
,请将其放在Path
中,该{{3}}可用作控件的内容。