加载 Silverlight 窗口后检测鼠标位置

Posted

技术标签:

【中文标题】加载 Silverlight 窗口后检测鼠标位置【英文标题】:Detect mouse location after Silverlight window loaded 【发布时间】:2010-03-01 17:22:54 【问题描述】:

我正在运行一个网页,其中包含一个 SL '框'。

我知道如何使用 MouseEnter 和 MouseLeave 来检测鼠标是进入 SL 框还是离开它。

我的问题是如何检测鼠标刚刚加载时是在 SL 盒子里面还是外面。

谢谢。

吉拉德。

【问题讨论】:

你能简单地使用 MouseMove 事件吗? MouseMove 事件在鼠标实际移动到 SL 框上时触发。但如果鼠标是静态的,事件会触发 【参考方案1】:

这是构建 Silverlight 应用程序的分步帖子,该应用程序在实例化时检测鼠标是否在 Silverlight 控件上方。

第 1 步:使用 Visual Studio 创建示例 Silverlight 应用程序(文件/新建项目/Silverlight 应用程序)

第 2 步:编辑 MainPage.xaml,并将以下代码放入 UserControl 的 Grid 中:

<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
    <TextBlock x:Name="x_Text" Text="Mouse Was Not Over" />
</Grid>

第 3 步:编辑 MainPage.cs,并将 MainPage 类替换为以下代码:

public partial class MainPage : UserControl

    public MainPage()
    
        InitializeComponent();
        base.MouseEnter += OnMouseEnter;
        base.Loaded += OnLoaded;
    

    void OnMouseEnter(object sender, MouseEventArgs e)
    
        x_Text.Text = "Mouse Was Over";
        base.MouseEnter -= OnMouseEnter;
    

    void OnLoaded(object sender, EventArgs e)
    
        System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();
        timer.Interval = new TimeSpan(300 * TimeSpan.TicksPerMillisecond);
        timer.Tick += delegate(object senderTick, EventArgs eTick)
        
            base.MouseEnter -= OnMouseEnter;
            timer.Stop();
        ;
        timer.Start();
    

第 4 步:构建并运行!将鼠标悬停在 Silverlight 控件的中心和控件外部进行尝试,以查看结果!

【讨论】:

吉拉德,这回答了你的问题吗?如果是这样,您能否将其标记为已回答?

以上是关于加载 Silverlight 窗口后检测鼠标位置的主要内容,如果未能解决你的问题,请参考以下文章

unity鼠标检测问题

Java - 检测鼠标是不是在屏幕上的任何位置按下

检测鼠标在子窗口外的点击

调整窗口大小后无法正确检索鼠标坐标

Qt中怎样把窗口类型设置成可用鼠标拖动改变大小???急!!!

易语言,怎么对指定窗口模拟鼠标点击和按键,可以后台的