Доступ к пользовательским элементам управления в ControlTemplates (Silverlight) - PullRequest
1 голос
/ 24 ноября 2008

Я пытаюсь создать развернутую версию слайдера с пользовательским элементом управления в части «большого пальца» (что означает: движущаяся вещь на слайдере), которая реагирует на движения слайдера. По сути, моя текущая демо-версия является просто UserControl с 5 визуальными состояниями, которые просто превращают смайлик в злое лицо в 5 этапах. Я хотел бы поместить этот пользовательский элемент управления в большой палец.

Моя единственная проблема заключается в следующем: я могу без проблем поместить UserControl в большой палец, отредактировав шаблон элемента управления Slider в Expression Blend. Однако, как только UserControl находится в ControlTemplate, он больше не виден новому классу пользовательского элемента управления и, следовательно, не может быть изменен с VisualStateManager.

Так что в основном мой вопрос состоит из двух частей:

  1. Есть ли лучший способ заменить большой палец ползунка, чем редактирование его шаблона?

  2. Если нет, как я могу получить доступ к материалам, которые я добавил в шаблон?

Спасибо за любые ответы!

Ответы [ 2 ]

1 голос
/ 24 ноября 2008

Я отвечаю сам. После посещения каждой страницы в интернете, я наконец-то сам нашел решение!

Я добавил обработчик события Loaded в свой элемент управления в ControlTemplate, и в этом обработчике события я взял ссылку на этот элемент управления для фактического класса! После этого я смог ссылаться на этот элемент управления с помощью этой ссылки, и, например, изменения визуального состояния работали как чудо!

Теперь у меня есть подпрыгнувший слайдер, у которого смайлик на ручке, а лицо на смайлике меняется в зависимости от положения слайдера! Довольно круто!

0 голосов
/ 24 декабря 2008

Я работал с другой стороны: Вы можете переопределить OnApplyTemplate () и получить ссылку с помощью метода GetTemplateChild. Как-то чувствует себя чище

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