Smart tag - базове застосування - about

Smart tag - базове застосування - about

Результати пошуку увінчалися успіхом і, в результаті деяких тестів і проб пера, вийшло те, що я хотів. І це дійсно стало економити купу часу!

Для всього нижчеописаного раджу поставити ReSharper 5. У дужках гарячі клавіші приведені для решарпера.

Що таке smart tag?

Smart tag - базове застосування - about

Приклади застосування і міркування як це можна використовувати

До всього іншого, в моєму стилі програмування UI широко застосування Біндінга і я хочу зробити цю операцію швидкої. Наприклад, забіндити Action<> до властивості Tag або до якого-небудь нового властивості.

Створення свого компонента

Є два шляхи створення свого компонента. Перший - створити новий клас і успадковувати його від Component; інший шлях створити клас спадкоємець UserControl. Найлегше це створюється за допомогою контекстного меню студії Add.

Коли мені потрібен новий компонент як композиція вже існуючих, я використовую UserConrol. Це найбільш загальний спосіб створення нових компонентів в процесі написання прикладного ПО. Але якщо ви бажаєте відредагувати існуючі компоненти, я раджу використовувати Component.

Створюємо новий проект типу DLL Library і називаємо його в дусі "SmartTagTutorial". Після цього повинен з'явиться СОЛЮШЕН (не знаю як це адекватно перевести) з одним проектом. Для завдань тестування непогано було б створити і проект типу WinForms.

Smart tag - базове застосування - about

Після всіх маніпуляцій повинно з'явиться щось схоже.

Знайоме все поки що виглядає, а? ;)

Наступним кроком додамо новий UserControl. Викликаємо контекстне меню проекту SmartTagTutorial і вибираємо потрібний пункт (Add> User Control). Далі може бути найскладніша частина - придумати, що ж буде робити новий компонент, і що ми хочемо в ньому оптимізувати. Я зупинився на створенні шапки.

Отже, тепер у нас є клас спадкоємець UserControl. Настав час проявити свою фантазію і намалювати, як буде виглядати шапка. У мене вийшло як на малюнку нижче.

Є основний текст, додатковий текст з описом і заготівля для картинки. Думаю, буде досить. Настав час писати код, почнемо від простого до складного.

Створення посилань дій.

Перемикаємося в Solution Explorer (ctrl + alt + L), вибираємо SmartTagTutorial, створюємо новий клас (alt + ins) і називаємо його MyControlDesiner. Для того щоб все запрацювало, успадковуємо його від класу ControlDesigner.

Збирати заново додаток і перевіряємо що вийшло. Відкриваємо форму (Form1) з проекту WinForms, вибираємо вікно інструментів (ctrl + alt + x) і перетягуємо на компонент на форму. Виділяємо компонент і бачимо знайомий трикутник.

Smart tag - базове застосування - about

Насамперед, створюємо ще один клас і називаємо його MyControlDesignerEx (Ex значить Extended). Цей клас повинен бути пронаследован від ParentControlDesigner. Для наших потреб буде достатньо перевизначити властивість ActionList.

Smart tag - базове застосування - about

На малюнку представлені всі основні частини.