Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID
в Пошук

Sergiy Baydachnyy

Введение в SilverLight 4: Поддержка колесика мыши

Вспоминаю те времена, когда компьютерные мыши имели всего две кнопки, а мышь с колесиком представляла собой нечто диковинное, чему сложно было найти применение. Сейчас сложно представить мышь, которая не имеет колесика. При этом наступает сильное раздражение, когда, в редких случаях, приложение не реагирует на колесико мыши. Теперь поддержка колесика мыши есть и в SilverLight.

Реализуем простое приложение, интерфейс которого содержит изображение, к которому мы применим трехмерную проекцию по оси X. Вот код интерфейса приложения:

<UserControl x:Class="MouseWheel_Chapter0.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
> 
    <Grid x:Name="LayoutRoot" Background="White">
        <Image Source="Penguins.jpg" Width="640" 
            Height="480" MouseWheel="Image_MouseWheel">
            <Image.Projection>
                <PlaneProjection x:Name="proj"></PlaneProjection>
            </Image.Projection>
        </Image>
    </Grid>
</UserControl>

Как видно, тут мы определили обработчик события MouseWheel, которое генерируется именно при вращении колесика мыши. Код обработчика довольно простой:

private void Image_MouseWheel(object sender, MouseWheelEventArgs e)
{
    proj.RotationX += e.Delta/10;
}

Запустите приложение, щелкните на картинке и начните вращать колесико мыши – картинка будет вращаться вокруг оси X.

Нужно отметить, что все встроенные элементы, работающие с набором записей, поддерживают работу с колесиком мыши по умолчанию. Сюда относятся такие элементы как DataGrid, ListBox и др.

Опубліковані Tuesday, January 12, 2010 7:48 AM від Sergiy Baydachnyy

Коментарі

 

Maryan сказав:

Недавно ми розробляли невеликий проект, де цю підтримку було використано. Єдина незручність була - коли сама html-сторінка має вертикальний скролл і курсор мишки знаходиться над Сільверлайт контентом, працює скролл браузера, а не події в Сільверлайт аплікації. Часу шукати вирішення не було, проте цікаво, чи хтось стикався з цим і чи знайшли рішення? Якщо я не помиляюсь, колись раніше реалізовували це ще під Сільверлайт 2 за допомогою скриптів, такого не було.

January 12, 2010 1:30 AM
Анонімні коментарі деактивовані. Увійдіть або Зареєструйтесь щоб мати доступ до ресурсів Спільноти.