вторник, 1 апреля 2014 г.

Самое сложное, когда переходишь с Windows Forms на WPF - это слегка изменить свое отношение к элементам интерфейса.

В первую очередь - это верстка. Матерые опытные люди встают в тупик, когда им предлагается не просто раскидать кнопочки по форме, а создать структуру. Не побоюсь этого слова макет. Надо забыть про абсолютные размеры и, тем более, абсолютное позиционирование элементов друг относительно друга.

Второе - способ сделать разные красивые штуки. Утопленные групбоксы с тенью, шаблоны красивых кнопочек. Работа по созданию своей библиотеки часто-используемых элементов - в данном случае становится рутинной. Или должна таковой становиться. В качестве примера: TimePicker - потому что в стандартных библиотеках нет такого элемента, только дата. А нам нужен все время.

Третье. Глубина макета. Составные и многослойный элементы управления. Наличие макета, эффектов на каждом уровне макета, прозрачностей, управляемых границ и Visibility позволяют комбинацией очень простых кирпичиков делать очень хитрые штуки.

Когда говорят "А давайте внедрять WPF вместо Windows Forms?" самый первый возникающий вопрос: "А что нам это даст?". И инициатор такой радостный: "Красивки!!!".
Тем не менее, прежде чем в проекте появится что-то более зрелое, чем радужный градиент на фоне формы новичку, привыкшему что элементы никак или почти никак друг с другом не связаны, придется сломать себе мозг.
Фокус, оказывается в том, что не надо долго и сложно пытать свойства каждого отдельного элемента. Не надо рисовать в фотошопе, чтобы подгрузить в качестве фона. Надо попытаться увидеть или придумать как решать задачу с точки зрения глубины макета.