我在visual studio中的wpf画布上绘制形状。在矩形的右内侧“添加”两个小圆圈的(最佳)方法是什么?我希望它们在用户看来是Rectangle上的“小洞”。我应该得到矩形右边的坐标,并计算圆的中心各自要求的坐标(我希望它们对称地位于矩形中间的上方和下方)来绘制圆圈? Canvas GetRight是获取Rectangle右侧坐标的合适方法吗?我如何将其应用于代码:
shapeToRender = new Rectangle() { Fill = Brushes.Red, Height = 50, Width = 50, RadiusX = 10, RadiusY = 10 };
Canvas.SetLeft(shapeToRender, e.GetPosition(canvasDrawingArea).X - rectWidth / 2);
Canvas.SetTop(shapeToRender, e.GetPosition(canvasDrawingArea).Y - rectHeight / 2);
canvasDrawingArea.Children.Add(shapeToRender);
形状由MouseEnter事件创建。
答案 0 :(得分:3)
这是你想要的东西吗?
这是使用:
完成的<Grid x:Class="yourNs.RectangleWithCircles"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="50" Width="50">
<Rectangle Fill="Red"/>
<UniformGrid Rows="2">
<Ellipse Grid.Row="0" Fill="White" Height="10" Width="10" HorizontalAlignment="Right" VerticalAlignment="Center" />
<Ellipse Grid.Row="1" Fill="White" Height="10" Width="10" HorizontalAlignment="Right" VerticalAlignment="Center" />
</UniformGrid>
</Grid>
如果yourNs
是您提供的命名空间,则只需将<yourNs:RectangleWithCircles />
添加到画布。
由于您已创建了RectangleWithCircles
课程,因此您可以通过添加公开方法来显示或隐藏圆圈,从而轻松对其进行自定义以满足您的需求。