2014-09-16 4 views
0

У меня есть кнопка, которая использует шаблон. В моем шаблоне у меня все работает правильно. Моя кнопка отображается правильно, со всеми изображениями и текстом. Но я хотел бы иметь эффект зависания на моей кнопке. Я пробовал стиль и стиль триггера мыши, и ни одна из них не работала. Может кто-нибудь сказать мне, как получить эффект наведения на мой шаблон кнопки ниже?XAML Button Hover Effect

<Button Command="{Binding AppToolbarViewModel.RunToolAction, Source={StaticResource ViewModelLocator}}" CommandParameter="{Binding XamlURI}" ToolTip="{Binding ToolToolTip}" 
Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Cursor="Hand"> 
    <Button.Template> 
    <ControlTemplate> 
     <StackPanel Orientation="Horizontal"> 
      <Grid> 
       <Label Content="&#xf0c8;" Style="{StaticResource FontAwesomeLabel}" /> 
       <Label Content="{Binding ImageURI}" Style="{StaticResource FontAwesomeLabel}" FontSize="20" Margin="10,10,0,0" Foreground="GhostWhite" /> 
      </Grid> 
      <Label Content="{Binding ToolName}" Style="{StaticResource ButtonLabel}" /> 
     </StackPanel> 
    </ControlTemplate> 
    </Button.Template> 
</Button> 

ответ

0

Извините, что я не могу комментировать (пока у меня нет репутации 50), но вы могли бы уточнить, что вы подразумеваете под эффектом зависания? Вы хотите всплывающую подсказку или хотите изменить стиль?

Независимо от того, если вы хотите получить всплывающую подсказку, вы можете обратиться к http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh868199.aspx Вы также можете добавить изображения в виде подсказки, если это то, что вы пытаетесь сделать.

Если вы хотите, чтобы стиль изменялся при наведении курсора мыши, вы можете реализовать обработчик событий «PointerEntered» и «PointerExited» и изменить стиль в коде или использовать какую-либо другую команду.

+0

Спасибо за ответ. Я ищу фон для изменения, когда мышь над кнопкой, что является эффектом по умолчанию. Насколько я понимаю, вы теряете этот эффект, когда используете ControlTemplate. Я хотел бы вернуть его. По возможности, я хотел бы получить полное решение XAML. –

+0

Я думаю, что класс VisualStateManager - это то, что вы ищете. Это не 100% XAML, но код позади минимален. http://msdn.microsoft.com/en-us/library/system.windows.visualstatemanager(v=vs.110).aspx –