Управление наследованием для согласованного внешнего вида в приложении Windows Forms - PullRequest
1 голос
/ 09 сентября 2010

Я создаю приложение для форм Windows, в котором очень согласованный внешний вид и функциональность всех модулей имеет очень высокий приоритет.Помимо стандартных элементов управления .NET он использует множество сторонних элементов управления от разных поставщиков.Я хотел бы иметь возможность изменить весь внешний вид приложения за один раз, может быть, с обновленными версиями программного обеспечения.Очень похоже на создание скинов, но в целом я видел, что возможности создания скинов сторонними поставщиками хорошо работают с их набором элементов управления только тогда, когда у меня есть элементы управления от нескольких поставщиков.

Я планирую создать полный набор пользовательских элементов управлениянаследуется от элементов управления .NET или сторонних элементов управления, где это уместно, и использует только наш набор элементов управления.Таким образом, мне, возможно, придется создать много элементов управления (например, Text, DropDown, List, Grid, DTPicker и т. Д. И т. Д.), Но я предполагаю, что у меня будет разумная команда для внешнего вида, то есть я могу распространять любые измененияоснова (например, использовать шрифт Tahoma во всех местах вместо MS Sans Serif), просто перестроив полное приложение.

Я также подумал, что возможность изменять шрифт для всего приложения, помимо прочего, является чем-тоэто обойдется почти всем типам элементов управления, которые будут унаследованы.

Вопросы:

  1. Считаете ли вы, что это правильный путь (наследование элементов управления), чтобы перейти к согласованному видуи чувствовать себя через приложение?

  2. Поддерживаете ли вы возможность изменять шрифт всего приложения за один снимок как хорошее требование?

Предложения, комментарии приветствуются.

Ответы [ 3 ]

3 голосов
/ 09 сентября 2010

1).ИМХО у тебя будет громоздкая иерархия.На мой взгляд, лучше иметь адаптеры для группы элементов управления.

Инфраструктура, например, имеет сложности и, во многих отношениях, иерархию нелогичного наследования.Если бы мне пришлось быстро реализовать скины, я бы реализовал логику скинов в классе общей формы (или другого контейнера) вместо создания большого набора собственных элементов управления.

2 голосов
/ 09 сентября 2010

Есть ли шанс использовать WPF?Я подозреваю, что сложность разработки элементов управления в Windows Forms растет экспоненциально с каждым уровнем наследования.

WPF предоставляет встроенный / разработанный для создания скинов, который намного легче внедрить и поддерживать.Я настоятельно рекомендую изучить этот проспект и использовать WPF, если можете.

0 голосов
/ 09 сентября 2010

Что касается Winforms, я знаю, что несколько контрольных наборов допускают подобные вещи.У Janus есть хороший набор элементов управления, которые могут регистрироваться с помощью так называемого VisualStyleManager.Изменение темы StyleManager автоматически скинет все элементы управления.

Я сам не реализую это, и вы будете счастливы ... просто потратьте несколько долларов на Janus или другие компоненты.

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