Определить местоположение мыши после загрузки окна Silverlight - PullRequest
0 голосов
/ 01 марта 2010

Я запускаю веб-страницу, на которой есть SL 'box'.

Я знаю, как использовать MouseEnter и MouseLeave для определения, вошла ли мышь в поле SL или покинула его.

Мой вопрос заключается в том, как определить, находится ли мышь внутри или снаружи блока SL, когда она только что загрузилась.

Спасибо.

Гилад.

1 Ответ

0 голосов
/ 02 марта 2010

Вот пошаговая публикация по созданию приложения Silverlight, которое определяет, находится ли мышь над элементом управления Silverlight при его создании.

Шаг 1 : создание примера приложения Silverlight с помощью Visual Studio (Файл / Новый проект / Приложение Silverlight)

Шаг 2 : отредактируйте файл MainPage.xaml и поместите следующий код в сетку UserControl:

<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 и снаружи элемента управления, чтобы увидеть результаты!

...