2010-06-09 2 views
1

Я создаю UserControl в Silverlight 4, у которого есть водяной знак.Возможно ли динамическое изменение стиля/шаблона элемента управления?

Водяной знак должен меняться в зависимости от базового «типа», представляемого UserControl.

Водяной знак создается с использованием пути, и я выделил все свойства в стиле.

Мне было интересно, можно ли изменить стиль пути во время выполнения на основе известного значения.

Я использую MVVM и Unity. Может быть, я смогу каким-то образом связать стиль? Или я могу вставить стиль при создании представления?

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

Благодаря ...

ответ

0

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

+0

Моя первоначальная идея состояла в том, чтобы представить все водяные знаки и объединить DataTrigger, привязанный к свойству Type DataContext, с серией ChangePropertyActions, чтобы переключать видимость различных водяных знаков в соответствии с типом. К сожалению, это не сработало. Вероятно, потому что модель, содержащая тип, передается в конструктор ViewModel, поэтому OnPropertyChanged никогда не запускается для Type, и поэтому DataTrigger также не запускается. –

+0

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

+0

Я в конце концов преследовал своего начальника, чтобы пойти с вариантом конвертера. –

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

  • Нет связанных вопросов^_^