加载 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 窗口后检测鼠标位置的主要内容,如果未能解决你的问题,请参考以下文章