Как динамически рисовать кнопки в приложении .NET Windows? - PullRequest
0 голосов
/ 05 декабря 2009

Время назад я создал приложение с несколькими кнопками в форме. Теперь клиент хочет, чтобы я изменил существующее приложение, чтобы он мог добавлять пользовательские кнопки.

Теперь есть несколько существующих кнопок (например, button1, button2, button3 ...), и мне нужно создать кнопку «Добавить новый ...», чтобы пользователь мог добавить новую кнопку под существующими кнопками в форме .

До сих пор я создавал пользовательские интерфейсы, просто помещая элементы управления в форму в Visual Studio, поэтому я был бы благодарен, если бы кто-нибудь предложил какой-либо способ реализовать описанную функциональность.

Существующим приложением является Windows Forms Application (C #, .NET Framework v3.5), а клиент использует Windows XP. Может быть проще создать приложение WPF, но я не уверен, что его можно запустить в Windows XP ...

Спасибо!

Ответы [ 2 ]

11 голосов
/ 05 декабря 2009

Если c #, вы можете просто создать новую динамическую кнопку, используя

Button btn1 = new Button();
this.Controls.Add(btn1);

Вы можете добавить больше свойств к btn1

Что должны делать кнопки?

0 голосов
/ 05 декабря 2009

Вместо потенциальной перезаписи всего приложения в WPF вы можете выполнить частичную миграцию, встроив элементы управления WPF в приложение WinForm.

Вы добавляете ElementsHost к набору инструментов, который находится в пространстве имен System.Windows.Forms.Integration и является частью .Net 3.0. Затем его можно перетащить в форму или добавить в код. Элемент управления имеет дочернее свойство, которое, в свою очередь, может быть элементом UIE WPF.

WPF гораздо более эффективен в области стилизации и настройки внешнего вида элемента управления, чем пользовательские элементы управления, нарисованные в старом стиле в Winforms, однако существует некоторая кривая обучения. Это ваше требование?

WPF отлично работает с XP.

Всего несколько мыслей.

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