Вспоминаю те времена, когда компьютерные мыши имели всего две кнопки, а мышь с колесиком представляла собой нечто диковинное, чему сложно было найти применение. Сейчас сложно представить мышь, которая не имеет колесика. При этом наступает сильное раздражение, когда, в редких случаях, приложение не реагирует на колесико мыши. Теперь поддержка колесика мыши есть и в 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 и др.