代码之家  ›  专栏  ›  技术社区  ›  Gilad

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

  •  0
  • Gilad  · 技术社区  · 15 年前

    我正在运行一个网页,里面有一个SL“盒子”。

    我知道如何使用mouseenter和mouseleave来检测鼠标是否已进入或离开SL框。

    我的问题是,当鼠标刚加载时,如何检测鼠标是否在SL框的内部或外部。

    谢谢。

    吉拉德。

    1 回复  |  直到 13 年前
        1
  •  0
  •   Tim Cooper    13 年前

    下面是一个用于构建Silverlight应用程序的分步文章,该应用程序在实例化时检测鼠标是否在Silverlight控件上。

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

    步骤2 :编辑mainpage.xaml,并将以下代码放入用户控件的网格中:

    <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控件的中心和控件外部查看结果!