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

猜你喜欢

  • 四十而不惑什么意思?三十而立什么意思?

    《论语·为政》记载了孔子说过的一段话:“吾十有五而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十而从心所欲,不逾矩。”这段话的大摡意思是,“三十而立”,就是三十岁达到…

    2024-01-27
  • Bash软件漏洞”Shellshock”对Mac电脑有影响吗?

    据路透社报道,苹果公司周四晚间表示,绝大多数Mac用户不会因为最近确认的Bash软件漏洞“Shellshock”而面临风险。安全专家此前警告称,Shellshock将影响包括Mac…

    投稿 2022-04-29
  • 运动长高体操,让你月长5厘米不是梦!

    从14岁起几乎不再长个、16岁时只有1.61 米的艾哈迈托夫,竟然在三年中长高了21厘米。请看—— 鲁斯塔姆·艾哈迈托夫很想成为一名出色的跳高运动员。可他的个头又太不争气,从14岁…

    2024-08-18
  • 元旦放假几天?元旦怎么放假?

    @所有人 假期要来了 根据国务院办公厅通知 2024年元旦 2023年12月30日(星期六) 至2024年1月1日(星期一) 放假不调休 共3天 2024年全年放假安排 此前已公布…

    2024-01-04
  • 毕业后毕业档案怎么处理_毕业后档案该怎么办

    辛辛苦苦熬了几年,终于申请毕业了。但是,许多自考生在毕业之后都因自己的档案而苦恼,愁于不知道档案应该如何处理。 有的考生档案都在自己手里,更有甚者档案都没有密封,大家都或多或少会担…

    2022-10-15
  • 隔夜菜可以吃吗_怎么处理隔夜菜

    一说到隔夜菜,很多人的反应就是可怕的致癌物,甚至有时候没有吃完的菜,直接就倒掉了,非常的浪费,其实对于隔夜菜的传说,真的没有那么恐怖。 我们说隔夜菜能不能吃,是建立在你如何保存,保…

    2023-04-14
  • 出借人的风险有哪些,民间借贷会坐牢吗

    民间借贷案件属于民事范畴,行为人只需承担民事责任,不需坐牢。但若义务人有能力拒不执行法院判决、裁定,情节严重者将涉拒不执行判决、裁定罪,面临刑罚。 民间借贷通常不会导致坐牢。这类案…

    2023-11-09
  • 初二地生成绩什么时候出来?初二地生成绩在哪查询?

    一、成绩发布时间: 2023年7月7日17时前。 1.电脑端查询方式: 盘锦市教育局网站(https://jyj.panjin.gov.cn)查询。 2.手机端查询方式: 方法一:…

    投稿 2024-01-04
  • 牙膏有什么作用_牙膏的作用

    1、牙膏能真正起到全面保护牙齿、牙龈、牙周组织的作用。 2、清除搪瓷茶杯中留下的茶垢和咖啡渍,可在杯内壁涂上牙膏后反复擦洗,一会儿就可以光亮如初。 3、水龙头下方容易留下水锈和水垢…

    2022-08-12
  • 一根金条多少钱,四大银行金条价格

    供应商名称 金条名称 价格 单位 建行 建设银行龙鼎金条 477.87 元/克 中行 中国银行金条 475.96 元/克 工行 工商银行如意金条 483.85 元/克 平安银行 和…

    投稿 2023-10-18

发表回复

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