Canvas にRectオブジェクトを追加しようとしています。Rectangle オブジェクトを使用すると、Canvas に簡単に追加できます。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;
単純な Rect オブジェクトを追加するためだけに、これをすべて行わなければならないなんて信じられません! Rect を (たとえばドラッグして) 変更したい場合、これをすべてやり直さなければなりませんか? もっと簡単な方法があるはずです。私は何をすべきか?
編集: System.Windows.Shapesオブジェクトは使用しません。特定の Point (OnClick) が存在するかどうかを計算できないためです。System.Drawing.Rectangleはそれを行うことができますが、ドキュメントには別の記載がありますが、Point ではなく Rectangle を要求しています...また、たとえばその Rectangle に属性Opacity
または属性を設定することはできません。Stroke