Я не понимаю синтаксис для наследования пользовательского элемента управления wpf - PullRequest
0 голосов
/ 18 декабря 2010

Я прочитал несколько сообщений на эту тему, но все еще не могу заставить его работать.

Я хочу 2 пользовательских элемента управления slidertype1 и slidertype2, которые должны наследоваться от slidercommontype, все находятся в одном и том же пространстве имен, может кто-то знаетСинтаксис для этого простого варианта использования?

Вдохновляясь от http://jamescrisp.org/2008/05/26/wpf-control-inheritance-with-generics/

Я пытался:

<namespacecommon:slidercommontype x:Class="namespacecommon.slidertype1">

, но получил namespacecommon: slidercommontyp не существует в пространстве имен xml

1 Ответ

3 голосов
/ 18 декабря 2010

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

Сказав это, просто создайте свой класс SliderCommonType (хотя я бы назвал его SliderBase или что-то в этом роде).

namespace MyControls {
    public class SliderBase : UserControl {
    }
}

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

<Local:SliderBase x:Class="MyControls.SliderType1"
                  xmlns:Local="clr-namespace:MyControls">
</Local:SliderBase>

И выделенный код будет выглядеть так:

namespace MyControls {
    public class SliderType1 : SliderBase {
    }
}

Ключевым моментом является то, что ваш файл XAML имеетдля ссылки на базовый класс, который требует изменения элемента <UserControl> на <Local:SliderBase>, что, в свою очередь, требует импорта пространства имен XAML.

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

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

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