2015-09-12 5 views
0

Предположим, я хочу создать класс ImageButton с атрибутом Image и 2 ImageSource, а затем создать экземпляр ImageButton в .xaml-файле, чтобы я мог разместить его в соответствии с моим желаемым расположением.создать экземпляр класса C# из xaml wp8

Я уже пытался создать класс в правильном пространстве имен проекта вне любых классов, объявить конструктор с пустым аргументом, то в XAML я добавил

xmlns:local="clr-namespace:projectNameSpace" 
... 
<m:ImageButton></ImageButton> 

Это не работает, а затем попробовал другой код,

xmlns:m="clr-namespace:projectNameSpace" 
... 
<m:ImageButton></ImageButton> 

, но он сказал, что не назначен сбор, ожидаемый тип UIElement и тип «ImageButton» не включает в себя любой доступный конструктор

Есть ли способ ссылаться на класс C# и создать экземпляр в wp8 xaml? или это невозможно?

ответ

1

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

Согласно MSDN, класс UIElement не должен непосредственно наследуется:

UIElement не предоставляет публичный конструктор.
Как правило, вы не получаете классы из UIElement или FrameworkElement напрямую. Более типично используемые базовые классы для производных пользовательских классов эти классы:
- Конкретные элементы управления, которые не запечатаны (например, TextBox)
- Контрольные классы базовых (Control, ContentControl, UserControl)
- Навигационные элементы (страницы, рамки)
- классы панелей (базовый класс панель или конкретные негерметичные реализации таких как Grid)

в вашем случае, я предполагаю, что кнопка будет наиболее подходящим класс для наследования.

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

Смежные вопросы