Я пытаюсь добавить Rect -объект на холст. Используя объект 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;
Я не могу поверить, что я должен пройти через все это просто добавить простой Rect-объект! И когда я хочу изменить Rect (например, перетаскивая), мне нужно все это повторить? Должен быть более простой способ. Что мне делать?
EDIT: Я не использую объект System.Windows.Shapes, потому что не могу вычислить, существует ли определенная точка (OnClick). System.Drawing.Rectangle может это сделать, но он запрашивает прямоугольник вместо точки, хотя в документации говорится об ином ... Кроме того, вы не можете установить атрибуты Opacity
или Stroke
, например, на этом прямоугольнике.
Поцарапайте свой последний комментарий, я собираюсь попробовать его немедленно! – Joetjah
'InputHitTest' сделал трюк! Спасибо! – Joetjah