Wiki


Wiki Table of Contents

Page Details

First published by:
Last revision by:
2 people found this article useful.

100% of people found this useful
Silverlight Tip of the Day #6: Monitoring for Keyboard and Mouse Events.

Filed under: [Edit Tags]

Silverlight 2 cung cấp đầy đủ các hỗ trợ  event handling dành cho  keyboard và mouse . Bạn không những có thể giám sát các event  của toàn bộ ứng dụng mà bạn còn có thể giám sát chúng tại các mức điều khiển riêng lẻ khác.

Sau đây là một ví dụ cho biết làm cách nào để giám sát tất cả những sự kiện xuất phát từ bàn phím và chuột trong ứng dụng:

Page.xaml.cs:

namespace SilverlightApplication
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();
 
            this.KeyDown                += new KeyEventHandler(Page_KeyDown);
            this.KeyUp                  += new KeyEventHandler(Page_KeyUp);
            this.MouseEnter             += new MouseEventHandler(Page_MouseEnter);
            this.MouseLeave             += new MouseEventHandler(Page_MouseLeave);
            this.MouseLeftButtonDown    += new MouseButtonEventHandler(Page_MouseLeftButtonDown);
            this.MouseLeftButtonUp      += new MouseButtonEventHandler(Page_MouseLeftButtonUp);
            this.MouseMove              += new MouseEventHandler(Page_MouseMove);
        }
 
        void Page_KeyDown(object sender, KeyEventArgs e)
        {
        }
 
        void Page_KeyUp(object sender, KeyEventArgs e)
        {
        }
 
        void Page_MouseEnter(object sender, MouseEventArgs e)
        {
        }
 
        void Page_MouseLeave(object sender, MouseEventArgs e)
        {
        }
 
        void Page_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
        }
 
        void Page_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
        }
 
        void Page_MouseMove(object sender, MouseEventArgs e)
        {
        }
    }
}

Để giám sát các điều khiển tại các mức khác, bạn sẽ phải thêm trực tiếp một event handler vào trong các control của XAML. Trong ví dụ sau, chúng ta sẽ thêm event handle  button mouse left downmouse left up vào <Textblock> control.

Page.xaml:

<UserControl x:Class="SilverlightApplication6.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300">
    <Grid x:Name="LayoutRoot" Background="White">
        <TextBlock x:Name="FPS" MouseLeftButtonDown="FPS_MouseLeftButtonDown" 
                   MouseLeftButtonUp="FPS_MouseLeftButtonUp">Hello there</TextBlock>
    </Grid>
</UserControl>

Page.xaml.cs:

namespace SilverlightApplication
{
    public partial class Page : UserControl
    {
        public Page()
        {
            InitializeComponent();
        }
 
        private void FPS_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            FPS.Text = "Mouse button down";
        }
 
        private void FPS_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            FPS.Text = "Mouse button up";
        }
    }
}

Thank you,

--Mike Snow

Recent Comments

Leave the first comment for this page.