WPF 鼠标移动到图片变大,移开还原,单击触发事件效果

2022-12-04,,,,

<Grid>
        <Canvas x:Name="LayoutRoot">
            <Image Cursor="Hand" MouseLeftButtonDown="imgLogo1_MouseLeftButtonDown" MouseEnter="imgLogo1_MouseEnter"
                   MouseLeave="imgLogo1_MouseLeave" Canvas.ZIndex="1" x:Name="imgLogo1" Canvas.Left="100"
                   Canvas.Top="60" Height="100" Source="Image/Picture.jpg">
                <Image.RenderTransform>
                    <ScaleTransform x:Name="LogoScale" CenterX="90" CenterY="96">
 
                    </ScaleTransform>
                </Image.RenderTransform>
            </Image>
        </Canvas>
    </Grid>

  

public partial class Window8 : Window
   {
       public Window8()
       {
           InitializeComponent();
           timer = new System.Windows.Threading.DispatcherTimer();
           timer.Interval = TimeSpan.FromMilliseconds(50);
           timer.Tick += new EventHandler(timer_Tick);
       }
 
       private System.Windows.Threading.DispatcherTimer timer;
       private ScaleDirection scaleDirection ;
       
 
       void timer_Tick(object sender, EventArgs e)
       {
           AdjustScale(scaleDirection, LogoScale);
       }
 
       void AdjustScale(ScaleDirection scaleDirection, ScaleTransform scale)
       {
           if (scaleDirection == ScaleDirection.Down)
           {
               if (scale.ScaleX < 1.3)
               {
                   scale.ScaleX += 0.05; scale.ScaleY += 0.05;
               }
               else
                   timer.Stop();
           }
           else
           {
               if (scale.ScaleX > 1.0)
               {
                   scale.ScaleX -= 0.05;
                   scale.ScaleY -= 0.05;
               }
               else
                   timer.Stop();
           }
       }
 
       enum ScaleDirection
       {
           Up,
           Down
       }
 
       private void imgLogo1_MouseEnter(object sender, MouseEventArgs e)
       {
           scaleDirection = ScaleDirection.Down;
           timer.Start();
       }
 
       private void imgLogo1_MouseLeave(object sender, MouseEventArgs e)
       {
           scaleDirection = ScaleDirection.Up;
           timer.Start();
       }
 
       private void imgLogo1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
       {
           MessageBox.Show("test");
       }
   }

WPF 鼠标移动到图片变大移开还原,单击触发事件效果的相关教程结束。

《WPF 鼠标移动到图片变大,移开还原,单击触发事件效果.doc》

下载本文的Word格式文档,以方便收藏与打印。