q789321 发表于 2018-6-16 14:48:49

Windows 8实用窍门系列:4.Windows 8的常用鼠标事件

  
/// <summary>
  
/// 可用于自身或导航至 Frame 内部的空白页。
  
/// </summary>

  
public sealed partial>  
{
  
public MainPage()
  
{
  
this.InitializeComponent();
  
}
  
Point start = new Point();
  

  
/// <summary>
  
/// 在此页将要在 Frame 中显示时进行调用。
  
/// </summary>
  
/// <param name=&quot;e&quot;>描述如何访问此页的事件数据。Parameter
  
/// 属性通常用于配置页。</param>
  
protected override void OnNavigatedTo(NavigationEventArgs e)
  
{
  

  
}
  

  
//鼠标中键滑动事件
  
private void MainCanvas_PointerWheelChanged(object sender, PointerRoutedEventArgs e)
  
{
  
this.tbLabel.Text = &quot;滑动了一次鼠标中箭&quot;;
  
}
  

  
//鼠标点击下去的事件
  
private void MainCanvas_PointerPressed(object sender, PointerRoutedEventArgs e)
  
{
  
start = e.GetCurrentPoint(MainCanvas).Position;
  
this.tbLabel.Text = &quot;点击了一次鼠标或者屏幕&quot;;
  

  
}
  

  
//鼠标松键事件
  
private void MainCanvas_PointerReleased(object sender, PointerRoutedEventArgs e)
  
{
  
Point end = e.GetCurrentPoint(MainCanvas).Position;
  
double angle = 0;
  
//判断拖动鼠标角度
  
if (Math.Abs(end.X - start.X) < 1 && Math.Abs(end.Y - start.Y) < 1)
  
{
  
angle = 0;
  
}
  
else if (end.X > start.X)
  
{
  

  
if (end.Y > start.Y)
  
{
  
angle = 360 - Math.Atan((end.Y - start.Y) * 1.0 / (end.X - start.X)) * 180 / Math.PI;
  
}
  
else
  
{
  
angle = Math.Atan((start.Y - end.Y) * 1.0 / (end.X - start.X)) * 180 / Math.PI;
  
}
  
}
  
else if (end.X < start.X)
  
{
  
if (end.Y > start.Y)
  
{
  
angle = Math.Atan((end.Y - start.Y) * 1.0 / (start.X - end.X)) * 180 / Math.PI + 180;
  
}
  
else
  
{
  
angle = 180 - Math.Atan((start.Y - end.Y) * 1.0 / (start.X - end.X)) * 180 / Math.PI;
  
}
  
}
  
if (angle == 0)
  
{
  
this.tbLabel.Text = &quot;点击了一次鼠标或者屏幕&quot;;
  
}
  
else if (angle >= 45 && angle < 135)
  
{
  
this.tbLabelFore.Text = &quot;从下往上&quot;;
  
}
  
else if (angle <= 45 || angle > 315)
  
{
  
this.tbLabelFore.Text = &quot;从左向右滑&quot;;
  
}
  
else if (angle >= 135 && angle < 225)
  
{
  
this.tbLabelFore.Text = &quot;从右向左滑&quot;;
  
}
  
else if (angle >= 225 && angle < 315)
  
{
  
this.tbLabelFore.Text = &quot;从上往下&quot;;
  
}
  

  
}
  

  
//鼠标移动事件
  
private void MainCanvas_PointerMoved(object sender, PointerRoutedEventArgs e)
  
{
  
Point point = e.GetCurrentPoint(MainCanvas).Position;
  
this.tbLabel.Text = &quot;鼠标正在移动X:&quot;+point.X+&quot;,Y:&quot;+point.Y;
  
}
  

  
//鼠标移出范围事件
  
private void MainCanvas_PointerExited(object sender, PointerRoutedEventArgs e)
  
{
  
this.tbLabelNext.Text = &quot;鼠标移出作用范围&quot;;
  
}
  

  
//鼠标进入范围事件
  
private void MainCanvas_PointerEntered(object sender, PointerRoutedEventArgs e)
  
{
  
this.tbLabelNext.Text = &quot;鼠标进入范围&quot;;
  
}
  
}
页: [1]
查看完整版本: Windows 8实用窍门系列:4.Windows 8的常用鼠标事件