Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WPF style:
- <Style x:Key="SpotlightButton" TargetType="{x:Type Button}">
- <Setter Property="Background" Value="Transparent"/>
- <Setter Property="BorderThickness" Value="0"/>
- <Setter Property="BorderBrush" Value="Transparent"/>
- <Setter Property="Height" Value="40"/>
- <Setter Property="Foreground" Value="WhiteSmoke"/>
- <Setter Property="FontSize" Value="16"/>
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type Button}">
- <Border Background="{TemplateBinding BorderBrush}">
- <Grid ClipToBounds="True" MouseMove="MoveMouseSpotLight">
- <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
- <Grid Opacity="0" x:Name="mouseTracker" Margin="-250,-250,0,0" Width="500" Height="500" VerticalAlignment="Top" HorizontalAlignment="Left" RenderTransformOrigin="0.5,0.5">
- <Grid.Background>
- <RadialGradientBrush x:Name="gradRadial" RadiusX="0.45" RadiusY="0.45">
- <GradientStop Color="#33FFFFFF" Offset="0.0"/>
- <GradientStop Color="#00000000" Offset="1.0"/>
- </RadialGradientBrush>
- </Grid.Background>
- <Grid.RenderTransform>
- <TranslateTransform X="0" Y="0"/>
- </Grid.RenderTransform>
- </Grid>
- </Grid>
- </Border>
- <ControlTemplate.Triggers>
- <Trigger Property="IsMouseOver" Value="True">
- <Trigger.EnterActions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="mouseTracker" Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.3" />
- </Storyboard>
- </BeginStoryboard>
- </Trigger.EnterActions>
- <Trigger.ExitActions>
- <BeginStoryboard>
- <Storyboard>
- <DoubleAnimation Storyboard.TargetName="mouseTracker" Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0.3" />
- </Storyboard>
- </BeginStoryboard>
- </Trigger.ExitActions>
- </Trigger>
- <Trigger Property="IsPressed" Value="True">
- <Setter Property="Background" Value="#33FFFFFF"/>
- </Trigger>
- </ControlTemplate.Triggers>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- Mouse event here:
- /// <summary>
- /// Move button spotlight around
- /// </summary>
- /// <param name="sender">Grid from control template</param>
- /// <param name="e">Mouse event</param>
- private void MoveMouseSpotLight(object sender, MouseEventArgs e)
- {
- try
- {
- DependencyObject light = LogicalTreeHelper.FindLogicalNode((Grid)sender, "mouseTracker");
- Point mouse = Mouse.GetPosition((Grid)sender);
- light.SetValue(FrameworkElement.RenderTransformProperty, new TranslateTransform(mouse.X, mouse.Y));
- }
- catch (Exception ex)
- {
- ex.ToString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement