Windows 8技巧: Windows 8中常见鼠标事件的分析与介绍

在Windows 8中,采用了一些新的鼠标事件来取代之前的Silverlight鼠标事件。常见事件如下:

PointerWheelChanged:鼠标中键滑动事件。

PointerPressed:鼠标点击下去的时候即触发事件。

PointerReleased:鼠标点击下去的时候释放鼠标时触发事件。

PointerEntered:鼠标进入有效范围之时触发一次。

PointerMoved:鼠标在有效范围之内移动之时触发事件。

PointerExited:鼠标退出有效范围之时触发事件。

在本文中将通过实例演示各种鼠标事件的响应.下面我们看实例源码如下:

复制代码

代码如下:

<Grid Background=”{StaticResource ApplicationPageBackgroundThemeBrush}”>

<Canvas Name=”MainCanvas” Width=”600″ Height=”300″ Background=”Cornsilk”

PointerWheelChanged=”MainCanvas_PointerWheelChanged”

PointerReleased=”MainCanvas_PointerReleased”

PointerPressed=”MainCanvas_PointerPressed”

PointerMoved=”MainCanvas_PointerMoved”

PointerExited=”MainCanvas_PointerExited”

PointerEntered=”MainCanvas_PointerEntered”

></Canvas>

<TextBlock HorizontalAlignment=”Left” Foreground=”Gold” Margin=”383,99,0,0″ TextWrapping=”Wrap”

Name=”tbLabel” Text=”” VerticalAlignment=”Top” Height=”40″ Width=”418″/>

<TextBlock HorizontalAlignment=”Left” Foreground=”Gold” Margin=”774,99,0,0″ TextWrapping=”Wrap”

Name=”tbLabelNext” Text=”” VerticalAlignment=”Top” Height=”40″ Width=”209″/>

<TextBlock HorizontalAlignment=”Left” Foreground=”Gold” Margin=”564,171,0,0″ TextWrapping=”Wrap”

Name=”tbLabelFore” Text=”” VerticalAlignment=”Top” Height=”40″ Width=”209″/>

</Grid>

其中Xaml.cs后台代码如下,

复制代码

代码如下:

/// <summary>

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

/// </summary>

public sealed partial class MainPage : Page

public MainPage()

this.InitializeComponent();

Point start = new Point();</p><p> /// <summary>

/// 在此页将要在 Frame 中显示时进行调用。

/// </summary>

/// <param name=”e”>描述如何访问此页的事件数据。Parameter

/// 属性通常用于配置页。</param>

protected override void OnNavigatedTo(NavigationEventArgs e)

{</p><p> }</p><p> //鼠标中键滑动事件

private void MainCanvas_PointerWheelChanged(object sender, PointerRoutedEventArgs e)

this.tbLabel.Text = “滑动了一次鼠标中箭”;

}</p><p> //鼠标点击下去的事件

private void MainCanvas_PointerPressed(object sender, PointerRoutedEventArgs e)

start = e.GetCurrentPoint(MainCanvas).Position;

this.tbLabel.Text = “点击了一次鼠标或者屏幕”;</p><p> }</p><p> //鼠标松键事件

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)

{</p><p> 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 = “点击了一次鼠标或者屏幕”;

else if (angle >= 45 && angle < 135)

this.tbLabelFore.Text = “从下往上”;

else if (angle <= 45 || angle > 315)

this.tbLabelFore.Text = “从左向右滑”;

else if (angle >= 135 && angle < 225)

this.tbLabelFore.Text = “从右向左滑”;

else if (angle >= 225 && angle < 315)

this.tbLabelFore.Text = “从上往下”;

}</p><p> }

//鼠标移动事件

private void MainCanvas_PointerMoved(object sender, PointerRoutedEventArgs e)

Point point = e.GetCurrentPoint(MainCanvas).Position;

this.tbLabel.Text = “鼠标正在移动X:”+point.X+”,Y:”+point.Y;

}</p><p> //鼠标移出范围事件

private void MainCanvas_PointerExited(object sender, PointerRoutedEventArgs e)

this.tbLabelNext.Text = “鼠标移出作用范围”;

}</p><p> //鼠标进入范围事件

private void MainCanvas_PointerEntered(object sender, PointerRoutedEventArgs e)

this.tbLabelNext.Text = “鼠标进入范围”;

下图是效果演示,如需源码请点击 Win8Event.zip 下载

Windows  8技巧: Windows  8中常见鼠标事件的分析与介绍

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 86345@qq.com 举报,一经查实,本站将立刻删除。
(0)
上一篇 2022-04-20 17:40:01
下一篇 2022-04-20 17:50:01

猜你喜欢

  • 灯光设计的基础_灯具的种类和安装

    灯光设计的基础和灯具安装的相关数据 要说哪部分装修能将家的格调拔高好几个级别,那非灯光莫属了,无论是营造氛围还是提升空间质感,再没有比借助灯光性价比更高的方法了。本节就从灯光的各类…

    2023-03-20
  • 什么是小产权房?100平方米以上的小产权房能获得多少赔款?

    最近有消息称,2023年10月1日起将开始对一些小产权房进行拆迁。这引发了人们的广泛关注和疑问,特别是对于那些拥有100平方米以上的小产权房的业主们来说,他们想知道自己可能获得多少…

    2024-01-18
  • 糖蒜怎么做,自制糖蒜的简单方法

    糖蒜,顾名思义,就是用糖腌制的大蒜。这道美味的小吃在中国广受欢迎,尤其在夏季时节更是大热。如今,糖蒜在自媒体平台上也备受关注,成为了许多美食达人的宠儿。 糖蒜不仅具有美味,还有一些…

    2023-11-09
  • 接头发多少钱?可以保持多久?

    如果你想接头发,不知道接哪个?不知道正常价位是多少?看完这期视频就够了。建议你快艾特你闺蜜一起来学习。 目前市面上接发比较常见的水晶线、无痕贴片、羽毛。第一种、水晶线接发,这个是我…

    2024-01-06
  • 海南最佳养老小镇,海南最佳养老地方

    外地朋友想来海南买房养老,可以考虑这四个区域,十分宜居。 海口西海岸 西海岸是海口打造的城市副中心,区域功能主要以休闲居住为主,目前已经开发建设了10多年,养老居住所需要的生活医疗…

    2023-07-22
  • 燕国为何两大强国_秦国和赵国为何被燕国称为马奴

    秦国想和赵国结盟,想引其讨伐燕国。消息传到燕国,燕国的朝臣都很生气,直言赵是奴才。 而燕太子丹在秦国求援不成的时候,气愤之下也曾经用秦国“马奴”的身份来讥讽秦人。 那么,这个燕国又…

    2022-09-03
  • 怎么取消QQ会员续费?如何使用电脑关闭腾讯会员的自动续费功能?

    很多朋友开通腾讯的“会员自动续费功能”后,想要关闭但又不知道该如何操作,本期文章就教大家如何使用电脑关闭腾讯会员的自动续费功能。 首先,使用电脑自带的浏览器打开任意一款搜索引擎,然…

    2024-02-21
  • 什么是物流管理_物流管理专业介绍

    1.专业介绍:本专业为物流企业和各级经济管理部门培养具有物流管理专业能力的应用型专门人才。通过学习掌握现代物流所必须的管理理论、知识和方法,并能用所学的专业知识解决实际工作中的物流…

    2023-01-16
  • 华为mate60买哪一款合适,华为mate60有教育优惠吗

    华为mate60买哪一款合适 根据2023年9月4日11:11:30的时间,华为Mate60系列可能还未发布。然而,根据华为过去的产品线,我建议您根据自己的需求选择合适的款式。 如…

    2023-09-18
  • 罗密欧与朱丽叶的故乡是哪_意大利第二大城市

    一个城,因一个爱情故事而闻名于世,这城便是维罗纳,这个最著名的爱情故事大家耳熟能详,《罗密欧与朱丽叶》。 维罗纳隶属于维内托大区,是该区仅次于威尼斯的第二大城市。维罗纳在拉丁语里是…

    2022-11-12

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注