Как я могу создать визуальные состояния для пользовательского контроля в смеси? - PullRequest
0 голосов
/ 05 ноября 2010

У меня есть пользовательский элемент управления, полученный из класса Control. Я хочу, чтобы этот пользовательский элемент управления имел визуальные состояния. Как мне определить эти состояния с помощью Blend? Если у меня есть пользовательский элемент управления или какой-либо другой встроенный элемент управления, это очень легко сделать. Но как я могу определить визуальные состояния для пользовательского контроля. Я хочу использовать только Blend и не хочу писать весь этот код самостоятельно.

Заранее спасибо:)

1 Ответ

1 голос
/ 05 ноября 2010

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

Если вы добавляете стиль в свой App.xaml, который применяется к вашему элементу управления, тогда вы можете установить ControlTemplate, который имеет визуальные состояния внутри него. Вот пример XAML, который вы можете добавить на свою страницу, а затем отредактировать с помощью Blend для вашего сердца.

(примечание, непроверенный XAML)

<Style x:Key="myControlFrameStyle" TargetType="ns:MyOwnClass">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="ns:MyOwnClass">
         <Border>
           <VisualStateManager.VisualStateGroups>
             ...
           </VisualStateManager.VisualStateGroups>
         </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>
...