G2A Many GEOs
SHARE
TWEET

WPF button with spotlight under mouse

ReyeMe Mar 28th, 2018 125 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. WPF style:
  2.  
  3.                 <Style x:Key="SpotlightButton" TargetType="{x:Type Button}">
  4.                 <Setter Property="Background" Value="Transparent"/>
  5.                 <Setter Property="BorderThickness" Value="0"/>
  6.                 <Setter Property="BorderBrush" Value="Transparent"/>
  7.                 <Setter Property="Height" Value="40"/>
  8.                 <Setter Property="Foreground" Value="WhiteSmoke"/>
  9.                 <Setter Property="FontSize" Value="16"/>
  10.                 <Setter Property="Template">
  11.                     <Setter.Value>
  12.                         <ControlTemplate TargetType="{x:Type Button}">
  13.                             <Border Background="{TemplateBinding BorderBrush}">
  14.                                 <Grid ClipToBounds="True" MouseMove="MoveMouseSpotLight">
  15.                                     <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
  16.                                     <Grid Opacity="0" x:Name="mouseTracker" Margin="-250,-250,0,0" Width="500" Height="500" VerticalAlignment="Top" HorizontalAlignment="Left" RenderTransformOrigin="0.5,0.5">
  17.                                         <Grid.Background>
  18.                                             <RadialGradientBrush x:Name="gradRadial" RadiusX="0.45" RadiusY="0.45">
  19.                                                 <GradientStop Color="#33FFFFFF" Offset="0.0"/>
  20.                                                 <GradientStop Color="#00000000" Offset="1.0"/>
  21.                                             </RadialGradientBrush>
  22.                                         </Grid.Background>
  23.                                         <Grid.RenderTransform>
  24.                                             <TranslateTransform X="0" Y="0"/>
  25.                                         </Grid.RenderTransform>
  26.                                     </Grid>
  27.                                 </Grid>
  28.                             </Border>
  29.                             <ControlTemplate.Triggers>
  30.                                 <Trigger Property="IsMouseOver" Value="True">
  31.                                     <Trigger.EnterActions>
  32.                                         <BeginStoryboard>
  33.                                             <Storyboard>
  34.                                                 <DoubleAnimation Storyboard.TargetName="mouseTracker" Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.3" />
  35.                                             </Storyboard>
  36.                                         </BeginStoryboard>
  37.                                     </Trigger.EnterActions>
  38.                                     <Trigger.ExitActions>
  39.                                         <BeginStoryboard>
  40.                                             <Storyboard>
  41.                                                 <DoubleAnimation Storyboard.TargetName="mouseTracker" Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0.3" />
  42.                                             </Storyboard>
  43.                                         </BeginStoryboard>
  44.                                     </Trigger.ExitActions>
  45.                                 </Trigger>
  46.                                 <Trigger Property="IsPressed" Value="True">
  47.                                     <Setter Property="Background" Value="#33FFFFFF"/>
  48.                                 </Trigger>
  49.                             </ControlTemplate.Triggers>
  50.                         </ControlTemplate>
  51.                     </Setter.Value>
  52.                 </Setter>
  53.             </Style>
  54.  
  55. Mouse event here:
  56.  
  57. /// <summary>
  58. /// Move button spotlight around
  59. /// </summary>
  60. /// <param name="sender">Grid from control template</param>
  61. /// <param name="e">Mouse event</param>
  62. private void MoveMouseSpotLight(object sender, MouseEventArgs e)
  63. {
  64.     try
  65.     {
  66.         DependencyObject light = LogicalTreeHelper.FindLogicalNode((Grid)sender, "mouseTracker");
  67.         Point mouse = Mouse.GetPosition((Grid)sender);
  68.         light.SetValue(FrameworkElement.RenderTransformProperty, new TranslateTransform(mouse.X, mouse.Y));
  69.     }
  70.     catch (Exception ex)
  71.     {
  72.         ex.ToString();
  73.     }
  74. }
RAW Paste Data
Ledger Nano X - The secure hardware wallet
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top