Как сделать собственный элемент управления и компонент для разработки Metro?

Я хотел бы опередить всех и начать создавать некоторые пользовательские элементы управления и компоненты C# для Metro (Win8), но я не могу найти никакой документации или сообщений в блогах о том, как начать, или даже о том, возможно ли это прямо сейчас.

Являются ли элементы управления Metro просто элементами управления WPF? Я еще не разработчик WPF; создание пользовательского элемента управления выглядит просто, но такого типа проекта нет в предварительной версии для разработчиков Windows 8. Итак, являются ли пользовательские элементы управления WPF (VS2010) типом проекта, который я должен использовать для создания своих элементов управления Metro? Кроме того, я не могу найти никакой документации о том, как создать компонент для использования в WPF/Metro; вы можете создать его, или это будет просто настраиваемый пользовательский элемент управления, который не виден? (Я надеялся на какой-то тип контейнера компонентов, подобный тому, который использует winforms; компоненты для Metro теперь являются только библиотеками классов и больше не включают поддержку дизайнера?)


person anonWrkrB    schedule 22.02.2012    source источник
comment
возможный дубликат собственного пользовательского элемента управления Windows 8   -  person Fritjof Berggren    schedule 09.11.2013


Ответы (1)


Это... очень трудно сейчас. Невозможно переопределить OnRender или что-то подобное для элемента управления, т. е. создать код для отображения элемента управления с настраиваемым внешним видом. Однако вы можете создать собственный шаблон. Все, что вы можете сделать в шаблоне, является законным, и именно так вы должны подходить к пользовательским элементам управления.

Еще один вариант — сгенерировать ваш пользовательский интерфейс напрямую с использованием растровых (Bitmap) или векторных (Windows.UI.Xaml.Shape?) компонентов и таким образом создать свой пользовательский интерфейс. Бле.

Win8 Metro во многом похож на WPF, но не является его подмножеством. Похожие, но очень разные. Многие элементы управления WPF не перешли на Win8 Metro; тот же уровень управления рендерингом недоступен; и некоторые системные функции (например, расширенный рендеринг шрифтов) отсутствуют. Все это может измениться в следующих выпусках, но сейчас Microsoft пытается удержать разработчиков от создания пользовательских элементов управления пользовательского интерфейса.

person AndrewS    schedule 22.02.2012
comment
Благодарность; а что касается компонентов, знаете ли вы, ограничен ли я исключительно библиотеками классов или есть какой-то способ создать реальный компонент (поддержка дизайнера/инструментария)? - person anonWrkrB; 22.02.2012
comment
Вы можете получить поддержку Expression Blend для своих компонентов; они упакованы по-разному, но там есть вещи. В основном выберите формат метаданных Win8 в качестве цели сборки. - person AndrewS; 23.02.2012
comment
Можете ли вы объяснить больше о том, как сделать собственный шаблон? Я не вижу такого типа проекта в диалоговом окне нового проекта Win8 DP VS11 Express или любого типа вывода. - person anonWrkrB; 24.02.2012
comment
Я имею в виду разметку XAML; это не тип проекта. Я знаю из WPF, что многое можно настроить, отредактировав шаблон элемента управления, хотя документации по Win8 по-прежнему не хватает. - person AndrewS; 24.02.2012
comment
Спасибо за всю твою помощь; Я думаю, что пока ограничу свою работу компонентами. Есть ли способ заставить компонент отображаться на панели инструментов в Metro? - person anonWrkrB; 25.02.2012