silverlight - 获取鼠标滚轮事件 及 判断获取组合键的方法
来源:互联网 发布:17年网络群体事件 编辑:程序博客网 时间:2024/06/03 13:36
http://www.cnblogs.com/xh831213/archive/2010/08/05/1792866.html
可以借助 Htmlpage 对象 HtmlPage(System.Windows.Browser;)
HtmlPage.Window.AttachEvent("DOMMouseScroll", OnMouseWheel);
HtmlPage.Window.AttachEvent("onmousewheel", OnMouseWheel);
HtmlPage.Document.AttachEvent("onmousewheel", OnMouseWheel);
private void OnMouseWheel(object sender, HtmlEventArgs args)
{
}
HtmlPage.Window.AttachEvent("onmousewheel", OnMouseWheel);
HtmlPage.Document.AttachEvent("onmousewheel", OnMouseWheel);
private void OnMouseWheel(object sender, HtmlEventArgs args)
{
}
之后我们要在onmousewheel 方法中获取一个旋转角度属性
但是在不同浏览器中 这个属性的名称有些不同
根据这个角度我们可以得知鼠标正在向上或是向下滚动
double mouseDelta = 0;
ScriptObject e = args.EventObject;
if (e.GetProperty("detail") != null)
{// 火狐和苹果
mouseDelta = ((double)e.GetProperty("detail"));
}
else if (e.GetProperty("wheelDelta") != null)
{// IE 和 Opera
mouseDelta = ((double)e.GetProperty("wheelDelta"));
}
mouseDelta = Math.Sign(mouseDelta);
if (mouseDelta > 0)
{
txt.Text = "向上滚动";
}
else if (mouseDelta<0)
{
txt.Text = "向下滚动";
}
ScriptObject e = args.EventObject;
if (e.GetProperty("detail") != null)
{// 火狐和苹果
mouseDelta = ((double)e.GetProperty("detail"));
}
else if (e.GetProperty("wheelDelta") != null)
{// IE 和 Opera
mouseDelta = ((double)e.GetProperty("wheelDelta"));
}
mouseDelta = Math.Sign(mouseDelta);
if (mouseDelta > 0)
{
txt.Text = "向上滚动";
}
else if (mouseDelta<0)
{
txt.Text = "向下滚动";
}
在向上向下滚动的时候可以加入鼠标坐标的判断,以便确定鼠标在那个控件上,可以执行不同的操作.
应用程序的“允许在浏览器外运行应用程序” 不选
接下来 再给大家聊聊 如何获取键盘的组合键(比如我们经常按住ctrl+鼠标点击 或者 ctrl+enter)
其实 我们只要用到一个枚举值
namespace System.Windows.Input
{
// Summary:
// Specifies the set of modifier keys.
[Flags]
public enum ModifierKeys
{
// Summary:
// No modifiers are pressed.
None = 0,
//
// Summary:
// The ALT key is pressed.
Alt = 1,
//
// Summary:
// The CTRL key is pressed.
Control = 2,
//
// Summary:
// The SHIFT key is pressed.
Shift = 4,
//
// Summary:
// The Windows logo key is pressed.
Windows = 8,
//
// Summary:
// The Apple key (also known as the "Open Apple key") is pressed.
Apple = 8,
}
}
{
// Summary:
// Specifies the set of modifier keys.
[Flags]
public enum ModifierKeys
{
// Summary:
// No modifiers are pressed.
None = 0,
//
// Summary:
// The ALT key is pressed.
Alt = 1,
//
// Summary:
// The CTRL key is pressed.
Control = 2,
//
// Summary:
// The SHIFT key is pressed.
Shift = 4,
//
// Summary:
// The Windows logo key is pressed.
Windows = 8,
//
// Summary:
// The Apple key (also known as the "Open Apple key") is pressed.
Apple = 8,
}
}
具体如何方法
好比我们现在页面注册一个点击事件
this.MouseLeftButtonDown += new MouseButtonEventHandler(Page_MouseLeftButtonDown);
void Page_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{}
void Page_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{}
我们需要在里面做一点儿小操作就可以判断用户是否还在按住了键盘上的某个按键
ModifierKeys keys = Keyboard.Modifiers;
txt.Text = "";
if ((keys & ModifierKeys.Shift) != 0)
txt.Text += "shift";
if ((keys & ModifierKeys.Alt) != 0)
txt.Text += "alt";
if ((keys & ModifierKeys.Apple) != 0)
txt.Text += "apple";
if ((keys & ModifierKeys.Control) != 0)
txt.Text += "ctrl";
if ((keys & ModifierKeys.Windows) != 0)
txt.Text += "windows";
txt.Text += " + 鼠标点击"
txt.Text = "";
if ((keys & ModifierKeys.Shift) != 0)
txt.Text += "shift";
if ((keys & ModifierKeys.Alt) != 0)
txt.Text += "alt";
if ((keys & ModifierKeys.Apple) != 0)
txt.Text += "apple";
if ((keys & ModifierKeys.Control) != 0)
txt.Text += "ctrl";
if ((keys & ModifierKeys.Windows) != 0)
txt.Text += "windows";
txt.Text += " + 鼠标点击"
- silverlight - 获取鼠标滚轮事件 及 判断获取组合键的方法
- 网页鼠标滚轮事件(滚滚屏)的获取及理解
- c# winform 用鼠标滚轮控制图片大小,获取鼠标中键滚轮事件,MouseWheel事件
- java获取鼠标滚轮按下事件
- js获取页面中的鼠标滚轮事件
- silverlight中DataGrid如何处理鼠标的滚轮事件
- 关于鼠标滚轮事件的禁止方法
- 兼容各浏览器获取鼠标滚轮上下滚动事件
- Silverlight 4 支持鼠标滚轮事件了
- 获取鼠标滚轮滑动距离
- C#如何添加鼠标滚轮事件以及判断鼠标滚轮的方向
- 鼠标的滚轮javascript事件
- js的鼠标滚轮事件
- 稳扎稳打Silverlight(46) - 4.0UI之FlowDirection, TextTrimming, 响应鼠标滚轮事件, 响应鼠标右键事件, 全屏的新特性
- 稳扎稳打Silverlight(46) - 4.0UI之FlowDirection, TextTrimming, 响应鼠标滚轮事件, 响应鼠标右键事件, 全屏的新特性
- 【实用随记】获取鼠标滚轮上下滚
- QT5的鼠标事件和滚轮事件
- 让minigui的IAL支持鼠标中键滚轮事件
- 正则表达式语法
- 剖析Linux系统中硬链接与软链接的区别
- 学点js
- jdom 解析xml文件
- 10大javascript函数
- silverlight - 获取鼠标滚轮事件 及 判断获取组合键的方法
- LINQ 查询指定库中所有表名称的实现
- Android提高十七篇之多级树形菜单的实现
- SWT中判断组合键
- convert from dd/mm/yyyy to mm/dd/yyyy in c#
- iBATI_动态映射
- AOP入门 - 1
- 开发竞赛作品展示网站上线!
- VC 内存泄露