最后举一个简单的鼠标跟随示例结束对本章的讨论,该示例的XAML代码与前一个例子的相同,在后置代码中,使用.NET语言动态创建椭圆,当鼠标在画布上移动时,简单的调整椭圆的位置,后置代码如下所示:
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace DragMouseMove
{
public partial class Page : Canvas
{
Ellipse els;
public void Page_Loaded(object o, EventArgs e)
{
// Required to initialize variables
InitializeComponent();
//动态创建椭圆
CreateEllipse();
this.MouseMove += new MouseEventHandler(Page_MouseMove);
}
void Page_MouseMove(object sender, MouseEventArgs e)
{
//当鼠标移动时动态改变椭圆的位置
Point p = e.GetPosition(null);
els.SetValue<double>(Canvas.LeftProperty, p.X);
els.SetValue<double>(Canvas.TopProperty, p.Y);
}
//动态创建椭圆,并使用半透明的绿色填充
private void CreateEllipse()
{
els = new Ellipse();
els.Fill = new SolidColorBrush(Colors.Green);
els.Opacity = 0.4;
els.Width = 50;
els.Height = 50;
Children.Add(els);
}
}
}
该示例的运行效果如图所示。