WPF zastávka ListView ScrollBar střelby click

hlasů
8

Jsem pomocí WPF ListView se vždy viditelné svislý posuvník. Mám rutinu MouseLeftButtonUp událostí na ListView. Handler funguje správně s výjimkou, kdy je svislý posuvník klepnutí, když to nemá nic do činění tj ListView box nemá dostatek položky dělat žádné posouvání.

V takovém případě by nemělo nic stát, protože uživatel klikne na svislý posuvník, jen aby se ujistil, že nejsou žádné položky těsně mimo obrazovku. Nicméně ListView je událost MouseLeftButtonUp. V případě, že svislý posuvník má mít nějakou práci událost nedostane padáka.

Tady je můj simplifiewd XAML

<ListView MouseLeftButtonUp=DoSomething_MouseLeftButtonUp SelectionMode=Single ScrollViewer.VerticalScrollBarVisibility=Visible>
  <ListView.View>
    <GridView>
      <GridViewColumn Width=170 Header=Venue DisplayMemberBinding={Binding Path=Venue} />
    </GridView>
  </ListView.View>
</ListView>

Je tam tak jako tak, aby se zabránilo střelbě události, jejichž MouseLeftButtonUp když je svislý posuvník klikli irespective zda posuvník má nějakou práci, nebo ne?

Položena 27/08/2009 v 02:57
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
6

Ani jeden z dalších odpovědí pracoval v mém případě, protože komplexní styling se v ListBoxItem. To dělal nicméně:

var item = ItemsControl.ContainerFromElement(sender as ItemsControl, (DependencyObject)e.OriginalSource) as ListBoxItem;
if (item != null)
{
    // Handle it
}
Odpovězeno 19/02/2015 v 11:26
zdroj uživatelem

hlasů
4

Je to podobné jako tuto otázku a odpověď je stejná. Ve vašem MouseLeftButtonUppsovoda, zkontrolujte MouseButtonEventArgs.OriginalSourcevlastnost. Který vám řekne, kde kliknutí vzešlo.

Odpovězeno 28/08/2009 v 00:06
zdroj uživatelem

hlasů
2

Pro ListBoxu jsem použil následující kód:

 if (e.OriginalSource is TextBlock || e.OriginalSource is Border)
 {
     // do your stuff
 }
Odpovězeno 30/08/2013 v 05:38
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more