Я копаю в приложении WPF, написанном на C#.
Мне нужно нарисовать прямоугольник выделения, как тот, который мы используем, чтобы выбрать более одного элемента (например, файлы в папке).
У меня есть несколько объектов, которые имеют типы System.Windows.Controls.Control, System.Windows.Controls.ContentControl и System.Windows.FrameworkElement.
Я предполагаю, что мне нужно переопределить событие, например onPaint, onDraw или reDraw/rePaint.
Могу ли я использовать этот объект для рисования прямоугольника и как?Как найти чертеж на System.Windows.Controls. *?
ответ
WPF и WinForms полностью отличаются от этого аспекта. В WinForms вы можете переопределить OnPaint
, чтобы нарисовать что-либо непосредственно в контексте рисования, используя объект Graphics
в обработчике событий.
В WPF есть OnRender
метод, который, казалось бы, ведет себя так же, как OnPaint:
protected override void OnRender(DrawingContext dc)
{
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Colors.LimeGreen;
Pen myPen = new Pen(Brushes.Blue, 10);
Rect myRect = new Rect(0, 0, 500, 500);
dc.DrawRectangle(mySolidColorBrush, myPen, myRect);
}
Однако в WPF каждый визуальный элемент является объектом, вы не можете рисовать прямо ничего. То, что на самом деле делают методы рисования DrawingContext
, просто вставляет объекты в визуальное дерево, которое будет отображаться позже вместе с другими элементами.
Использование OnRender
, как правило, не самая лучшая идея, и имеет really bad performance, сравнивая быстрые операционные системы Graphics
. В WPF лучше использовать пользовательские элементы управления или шаблоны.
- 1. Store System.Windows.Controls в словаре
- 2. Не удается импортировать System.Windows.Controls
- 3. Бесплатный чертеж на картах
- 4. Как очистить чертеж на экране в wxpython?
- 5. Как ссылаться на чертеж с уникальным ключом
- 6. Как переопределить чертеж TBitBtn Glyph?
- 7. Не могу добавить ссылку System.Windows.Controls in Moonlight
- 8. Приложение Silverlight, разбитое с FileNotFoundException в System.Windows.Controls
- 9. Перемещение чертеж
- 10. System.Windows.Controls ChildWindow для Windows Phone 8.1
- 11. «Ярлык» не существует в пространстве имен «System.Windows.Controls»
- 12. C# WPF Чтение элемента списка без System.Windows.Controls
- 13. Ссылка на System.Windows.Controls и Microsoft.Xna.Framework.Graphics в том же проекте?
- 14. Как я могу очистить чертеж?
- 15. android динамический 2D-чертеж на холсте
- 16. Как очистить чертеж моего пользователя?
- 17. C# чертеж с ограничением
- 18. WritableBitmap высокоскоростной чертеж на Windows Phone
- 19. Как плавно анимировать чертеж линии
- 20. чертеж поли с отверстиями на андроиде
- 21. не может найти чертеж в упакованном нереальном проекте
- 22. Графический чертеж VC++
- 23. Изометрический чертеж двигателя
- 24. Опираясь на чертеж в центре окна
- 25. iOS - 2D-чертеж на отрицательных координатах
- 26. wxWidgets многослойный прозрачный чертеж
- 27. Автоматический чертеж с sketch.js
- 28. AutoScaling не работает на чертеж стрелки
- 29. Кварцевый пользовательский чертеж и UIViews. Не удается увидеть чертеж кварца
- 30. Model View Controller - как реализовать чертеж
Пожалуйста, сообщите, какую информацию нужно добавить, и я сделаю это. –
У вас нет приложения WinForms, у вас есть приложение WPF. Эти две вещи ** не ** одинаковы ... –
OK. Сначала я узнаю, как рисовать в WPF, а потом вернулся. –