我正在尝试将一个Rect对象添加到Canvas。使用Rectangle对象,很容易。将它添加到Canvas。 Rect看起来并不那么简单。在所提供的链接,我发现下面的代码来实现我想要的东西:将Rect添加到画布
Path myPath1 = new Path();
myPath1.Stroke = Brushes.Black;
myPath1.StrokeThickness = 1;
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 204, 204, 255);
myPath1.Fill = mySolidColorBrush;
Rect myRect1 = new Rect();
myRect1.X = 10;
myRect1.Y = 100;
myRect1.Width = 150;
myRect1.Height = 100;
RectangleGeometry myRectangleGeometry1 = new RectangleGeometry();
myRectangleGeometry1.Rect = myRect1;
GeometryGroup myGeometryGroup1 = new GeometryGroup();
myGeometryGroup1.Children.Add(myRectangleGeometry1);
myPath1.Data = myGeometryGroup1;
// Add path shape to the UI.
Canvas myCanvas = new Canvas();
myCanvas.Children.Add(myPath1);
this.Content = myCanvas;
我不能相信我不得不经历这一切只是为了添加一个简单的矩形对象!当我想改变一个矩形(例如通过拖动)时,我必须再次经历这一切?必须有一个更简单的方法。我该怎么办?
编辑:我不使用System.Windows.Shapes对象,因为我不能计算某个点(OnClick)是否存在。 System.Drawing.Rectangle可以做到这一点,但它要求的是矩形而不是点,即使文档中另有说明也是如此......另外,例如您不能在该矩形上设置Opacity
或Stroke
属性。
划伤我最后的评论,我马上试试吧! – Joetjah
'InputHitTest'做到了诀窍!谢谢! – Joetjah