Что эквивалентно Java-объекту canvas в C #? - PullRequest
3 голосов
/ 31 марта 2010

Я работаю над созданием базового приложения, которое позволит пользователю рисовать (используя серию точек), и я планирую что-то сделать с этими точками.

Если бы это была Java, я бы, вероятно, использовал бы объект canvas и некоторые вызовы Java2D, чтобы нарисовать то, что я хочу.

Все учебники, которые я читал на C # / Drawing, включают в себя написание собственного метода рисования и добавление его в событие рисования для формы. Тем не менее, я также заинтересован в некоторых традиционных элементах управления Form и не хочу их рисовать. Итак, есть ли объект «Холст», где я могу ограничить то, что я рисую?

Кроме того, является ли WinForms плохим выбором, учитывая этот вариант использования? Будет ли в WPF больше возможностей, которые позволят мне делать то, что я хочу? Или Silverlight?

Ответы [ 2 ]

2 голосов
/ 31 марта 2010

Растровое изображение будет работать нормально, отобразите его с помощью свойства PictureBox.Image. Используйте Graphics.FromImage (), чтобы получить объект Graphics, который необходимо нарисовать на растровом изображении. Используйте PictureBox.Invalidate (), чтобы сообщить PB, что ему нужно обновить изображение на экране.

0 голосов
/ 31 марта 2010

Ну, в WPF есть элемент управления , называемый 'canvas', который может вам подойти. Если вы используете Windows Forms, я думаю, что лучший выбор будет рисовать на панели элемент управления. Окна формы ни в коем случае не плохой выбор. Действительно, при их использовании вы даже можете разрабатывать кроссплатформенные приложения. Тем не менее, WPF более «богат» в некотором роде. Я думаю, что если вы не нацелены на какие-либо другие платформы и вам не нужно придерживаться .NET 2.0, WPF является предпочтительным выбором (особенно, если вы собираетесь использовать некоторую графику в своем приложении, поскольку WPF использует аппаратное ускорение ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...