Codebehind для ControlTemplate без контроля? - PullRequest
1 голос
/ 30 августа 2011

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

Этот шаблон элемента управления нуждается в некотором коде позади для визуализации (в основном, для ответа на события изменения размера),но я запутался, где, черт возьми, я должен поместить код, и как я получаю доступ к шаблону из него.

Этот код предназначен только для рендеринга этого конкретного шаблона, поэтому он не принадлежит самому элементу управления,

Кто-нибудь может дать мне подсказку?

Ответы [ 3 ]

2 голосов
/ 30 августа 2011

Вот ссылка , которая может вам помочь

1 голос
/ 30 августа 2011

Вы можете переопределить метод OnRender в вашем элементе управления, как в UserControl. Элемент в вашем ControlTemplate, тем не менее, будет отображаться поверх всего, что отображается вашим Control.

Если вам нужно добавить пользовательский рендеринг выше или между элементами в вашем ControlTemplate, то вам придется использовать дополнительный элемент в качестве именованной части. Пример именованных частей можно найти в этом блоге или в ссылке mdm20 (поиск "PART _").

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

0 голосов
/ 01 сентября 2011

Я нашел отличную ссылку, которая решает эту проблему с помощью прикрепленного поведения в шаблоне, чтобы присоединить ViewModel, которая обеспечивает дополнительную функциональность.Таким образом, сам элемент управления полностью не знает никакой логики, специфичной для шаблона:

http://www.scottlogic.co.uk/blog/colin/2010/08/developing-a-very-lookless-silverlight-radial-gauge-control/

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