Создание шаблона ControlTemplate во время выполнения в Silverlight - PullRequest
4 голосов
/ 26 июля 2011

Я пишу приложение Silverlight, которое требует от меня динамического создания шаблона ControlTemplate во время выполнения. Большинство решений, которые я нашел, включают создание нового шаблона для каждого случая, но у меня слишком много случаев, чтобы сделать это. Как бы я создал новый ControlTemplate в C #?

1 Ответ

3 голосов
/ 26 июля 2011

Вы не можете создать ControlTemplate в Silverlight только на C #. В отличие от WPF (где вы можете установить свойство VisualTree ), вы не можете установить свойство, которое определяет «содержимое» ControlTemplate.

Вы можете определить свой XAML как строку, а затем динамически загрузить ее в C #, как описано в этом сообщении в блоге .

Код сводится к:

var template = (ControlTemplate)XamlReader.Load("<ControlTemplate " +                 
       " xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"" +
       " xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">" +
       " content here " +
       "</ControlTemplate>");
...