c# - sobre - manita en css
Cambia el cursor a mano cuando coloco el cursor sobre un botón. (4)
Debe usar Style
para los botones, podría escribir en el recurso de la ventana o en el estilo de los botones:
<Style>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Cursor" Value="Hand"/>
</Trigger>
</Style.Triggers>
</Style>
Quiero cambiar el cursor a la mano al pasar el cursor sobre un botón, por ejemplo, tengo este botón:
<Button Content="" HorizontalAlignment="Left" Margin="229,128,0,0" VerticalAlignment="Top" Height="107" Width="170" Grid.RowSpan="2">
<Button.Template>
<ControlTemplate TargetType="Button">
<Grid>
<Grid.Background>
<ImageBrush ImageSource="africa/picture17.png"/>
</Grid.Background>
<ContentPresenter/>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
¿Cómo cambiar el cursor a mano cuando paso el cursor sobre el botón? Estoy usando Visual Studio 2013 para Windows Store 8 y C # -XAML.
Necesitas usar Mouse.OverrideCursor
:
myButton.MouseEnter += (s,e) => Mouse.OverrideCursor = Cursors.Hand;
myButton.MouseLeave += (s,e) => Mouse.OverrideCursor = Cursors.Arrow;
Puedes hacer esto cambiando la propiedad del Cursor
:
<Button Cursor="Hand" .../>
Usar el Visual State Manager
Actualiza tu XAML
para ser así
<Button Content="Beh}" Style="{StaticResource ButtonHover}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Cursor)">
<DiscreteObjectKeyFrame KeyTime="00:00:00">
<DiscreteObjectKeyFrame.Value>
<Cursor>Hand</Cursor>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Button>