Implicitně je kolečko myši podporováno v komponentách ComboBox, DataPicker, Calendar, TextBox, ScrolViewer, DataGrid a ListBox.
Pohyb kolečka myši je zajištěn události MouseWheel. Ta nám poskytuje parametr typu MouseWheelEventArgs, který obsahuje vlastnost Delta. Tato vlastnost je důležitá k tomu, abychom vyhodnotili pohyb kolečka myši. Delta může nabývat hodnoty 120 pro pohyb kolečka vpřed a hodnotu –120 pro pohyb kolečka vzad.
Událost MouseWheel není podporována na platformě Macintosh a zároveň není podporována v rámci módu “windowless” v prohlížečích Firefox, Chrome, Opera, Safari.
V rámci těchto omezení lze jako alternativu zvolit užití HTML DOM události. Musíme však počítat s nedostupností podpory kolečka v rámci režimu Full-Screen a také v režimu mimo prohlížeč (OOB).
Tato aplikace obsahuje komponentu Calendar, ListBox a ScrollViewer. Tyto tři komponenty implicitně podporují pohyb kolečka myši. Další dvě komponenty typu Image a Slider již obsluhu události musí mít implementovanou. Slider bude pohybovat posuvník při pohybu kolečka myši a obrázek zase bude rotovat. Label s textem “Hodnota Delty:” nám v případě vyvoláni události MouseMove nad komponentou Slider nebo Image sděluje aktuální hodnotu vlastnosti Delta.
Implementaci události MouseWheel si ukážeme na komponentě Slider.
V XAMLu jsme si přidali komponentu Slider a k ní událost MouseWheel.
<slider x:name="slider" mousewheel="slider_MouseWheel"></slider>
V implementaci metody reagující na událost máme tento kód:
private void slider_MouseWheel(object sender, MouseWheelEventArgs e)
{
e.Handled = true;
if (e.Delta > 0)
slider.Value += 1;
else
slider.Value -= 1;
}
Vlastnost Handled z parametru MouseWheelEventArgs je nastavena na true, a to z toho důvodu, aby nám událost dále neprobublávala směrem nahoru a neodchytila ji jiná komponenta (např. ScrollViewer) implementující událost MouseWheel.
V rámci podmínky ověřujeme, zda-li vlastnost Delta je kladná či záporná. Podle toho nastavujeme posun v Slideru. Je-li Delta záporná, tedy pohyb kolečka je vzad, pak posun v Slideru je směrem zpět. V případě kladné Delty je pohyb opačný.
Působí jako Microsoft Student Partner a pracuje jako vývojář v jedné nadnárodní firmě. Zajímá se o webové technologie a počítačovou grafiku. Pozornost také věnuje hernímu průmyslu
email: davidb@devedu.cz
web: www.aglight.cz