Почему в WPF событие OnPaint не такое как в WinForms
В WinForms это событие было сделано по уму — покуда не закончишь рисовать на экране перерисовки незаконченной не будет
Неужели оно кому-то мешало?
Здравствуйте, VVVa, Вы писали:
VVV>Почему в WPF событие OnPaint не такое как в WinForms VVV>В WinForms это событие было сделано по уму — покуда не закончишь рисовать на экране перерисовки незаконченной не будет
Опишите подробнее, какую задачу решаете? Не борьбу с OnPaint, а именно что надо получить от софта, какое поведение?
Здравствуйте, Mr.Delphist, Вы писали:
MD>Опишите подробнее, какую задачу решаете? Не борьбу с OnPaint, а именно что надо получить от софта, какое поведение?
Ну тут вопрос был в общем ...
Хотя была такая проблема которую я в WPF не решил из-за OnPaint
Например костомный контрол подсветки синтаксиса — нужно выводить разноцветный текст а вот низкоуровневых функций рисования нету...
Здравствуйте, VVVa, Вы писали:
VVV>Хотя была такая проблема которую я в WPF не решил из-за OnPaint VVV>Например костомный контрол подсветки синтаксиса — нужно выводить разноцветный текст а вот низкоуровневых функций рисования нету...
Здравствуйте, VVVa, Вы писали:
VVV>Здравствуйте, romangr, Вы писали:
R>>А чем готовый AvalonEdit не подошел?
VVV>Интересный компонент... а он отрисовку на WPF делает? VVV>Или WPF у него только скрол?
Насколько я помню, когда его изучал, отрисовка таки WPF. Такая же используется в редакторе студии.
System.Windows.Media.TextFormatting курите.
Но контрол довольно таки тяжеловесный. На него навешано слишком много всего, а вырезать безболезненно его плюшки как-то сложновато было.
Здравствуйте, syrompe, Вы писали:
S>Насколько я помню, когда его изучал, отрисовка таки WPF. Такая же используется в редакторе студии. S>System.Windows.Media.TextFormatting курите.
S>Но контрол довольно таки тяжеловесный. На него навешано слишком много всего, а вырезать безболезненно его плюшки как-то сложновато было.
если там всё на WPF то что там делает "System.Windows.Forms..." ? — это WinForms как ни как.
Здравствуйте, VVVa, Вы писали:
VVV>если там всё на WPF то что там делает "System.Windows.Forms..." ? — это WinForms как ни как.
Ну так поищите по коду и узнаете.
Я вот с ходу нашел, что из пространства System.Windows.Forms используются 2 класса:
— Screen в 2-х местах:
Rect workingScreen = System.Windows.Forms.Screen.GetWorkingArea(location.ToSystemDrawing()).ToWpf();
и
Rect workingArea = System.Windows.Forms.Screen.FromPoint(pointOnScreen.ToSystemDrawing()).WorkingArea.ToWpf().TransformFromDevice(this);
Может я чего-то еще пропустил (я тупо поискал по текстовой строке с именем немспейспа), но из того, что я нашел очевидно следует, что WinForms тут абсолютно не при делах и используется он только из-зав 2-х сугубо утилитарных классов.
Наверное, можно было бы обойтись и без них (подозреваю, что там не столь ужи замысловатый код — можно было воспроизвести), вот только смысл?
Здравствуйте, MonsterZam, Вы писали:
MZ>в WPF с курсором работают через: System.Windows.Input.Mouse, OverrideCursor
Слушайте, даже не знаю...
С ходу, вроде бы, ваш вариант вполне закрывает задачу скрыть/показать курсор (ну может чуть сложнее, чем WinForms).
Почему не перешли на него сказать не могу. Может "так исторически сложилось", а может есть неочевидные нюансы.