Attualmente sto creando un'applicazione XAML C# per Windows 8. In una pagina ho un scrollviewer per lo scorrimento orizzontale e lo scorrimento. Ho diversi controlli in esso che funzionano molto bene con lo spettatore. Ma quando si scorre e il cursore si trova in cima a ListView/GridView, quel controllo gestirà scrollnig invece di scrollviewer. Con lo scorrimento non si verifica ciò, ma con la rotellina del mouse si interrompe lo scroll scrolling. Qualcuno sa come disabilitare questo comportamento o avere una soluzione alternativa?ScrollViewer GridView XAML
risposta
Questo è un problema che vedo anch'io. Non esiste in contatto: sembra che si verifichi solo quando si utilizza la rotellina del mouse. Non so ancora una soluzione. Non penso che ce ne sia uno.
Dopo aver lavorato con questo problema per un po 'ho deciso di cambiare tattica. Almeno nella mia soluzione ho cambiato l'interno GridView per essere solo un ItemsControl. In questo modo posso gestire tutti i clic/tap, ma lasciare che lo scroll funzioni come previsto.
Ovviamente questa soluzione non è per tutti come a volte è necessario anche tutto il materiale di selezione. Ma per me ha funzionato in quanto avevo solo bisogno dell'elemento click/tap.
Speranza che aiuta
ho trovato una soluzione qui: msdn workaround
Fondamentalmente si deve effettuare le seguenti operazioni:
XAML Base:
<Grid Name="BaseElement">
<ScrollViewer Name="MainScrollViewer" Style="{StaticResource HorizontalScrollViewerStyle}" VerticalScrollMode="Auto">
<GridView />
<GridView />
</ScrollViewer>
</Grid>
Aggiungi un nuovo Gestore dell'elemento principale:
BaseElement.AddHandler(PointerWheelChangedEvent, new PointerEventHandler(Bubble_PointerWheelChanged), true);
Implementare il gestore a handel lo scorrimento:
private void Bubble_PointerWheelChanged(object sender, PointerRoutedEventArgs e) { // Could walk up the tree to find the next SV or just have a reference like here: MainScrollViewer.ScrollToHorizontalOffset(MainScrollViewer.HorizontalOffset - e.GetCurrentPoint(null).Properties.MouseWheelDelta); }
Ho anche avuto lo stesso problema. Poi ho provato a rimuovere barre di scorrimento dal modello Griglia di cui al seguito filo .. ha funzionato bene per me ..
migliore soluzione in assoluto.
public class CustomGridView : GridView
{
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
var sv = this.GetTemplateChild("ScrollViewer") as UIElement;
if (sv != null)
sv.AddHandler(UIElement.PointerWheelChangedEvent, new PointerEventHandler(OnPointerWheelChanged), true);
}
private void OnPointerWheelChanged(object sender, PointerRoutedEventArgs e)
{
e.Handled = false;
}
}
Maggiori informazioni: GridView in a ScrollViewer
1.Add questo codice in View.cs:
private void ThumbnailViewer_OnMouseWheel(object sender, MouseWheelEventArgs e)
{
ThumbnailViewerScroller.ScrollToHorizontalOffset(ThumbnailViewerScroller.HorizontalOffset - e.Delta);
}
codice 2.Add in XAML:
<ScrollViewer
x:Name="ViewerScroller"
MouseWheel="ThumbnailViewer_OnMouseWheel">
<StackPanel>
...
</StackPanel>
</ScrollViewer>
- 1. ScrollViewer scorrimento invece di controllo figlio ScrollViewer
- 2. WebView all'interno di ScrollViewer con intestazione dell'elemento XAML
- 3. ScrollViewer ruba focus
- 4. Scorrimento verticale all'interno del gruppo GridView di elementi in WinRT XAML
- 5. ScrollViewer non abilitato per ListView
- 6. Intestazione appiccicosa in ListView e GridView WinRT xaml
- 7. Scelta tra ListView e GridView di XAML in WinRT
- 8. Listview all'interno di scrollviewer impedisce scrollviewer scroll
- 9. XAML Horizontal Stackpanel Scrolling
- 10. Windows phone 7 scrollviewer problem
- 11. Come creare un ScrollViewer circolare/circolare su Windows 8 Metro (C++/XAML)
- 12. xaml Scrollviewer - Disabilita Overscrolling/effetto elastico/effetto snapback/rimbalzo dell'intera finestra
- 13. Come scorrere fino alla fine di un ScrollViewer automaticamente con Xaml e rilegatura?
- 14. XAML: crea ScrollViewer mostra barre di scorrimento quando il ScaleTransform di un oggetto figlio diventa grande
- 15. Come impostare il margine per la barra di scorrimento in scrollviewer usando solo xaml
- 16. C# WPF - ScrollViewer + Problemi di TextBlock
- 17. Scrollviewer & SIP Issue (WP7.5 Mango)
- 18. Silverlight Vertical only ScrollViewer?
- 19. ScrollViewer non scorre
- 20. Errore Adorner in un Scrollviewer
- 21. Wpf ScrollViewer Quantità di scorrimento
- 22. Come preselezionare più voci listview/gridview in C#/XAML windows 8 app?
- 23. Gridview scompare?
- 24. Come passare GridView come ConverterParameter
- 25. Come posso far scorrere ScrollViewer nell'area di visualizzazione?
- 26. Come utilizzare StringFormat negli elementi XAML?
- 27. Slider \ ScrollViewer in un'interfaccia touch non funziona correttamente
- 28. WPF: Come nascondere GridViewColumn utilizzando XAML?
- 29. Come si scorre una riga della griglia in WPF/XAML?
- 30. ScrollViewer non sta scorrendo in WPF
Si prega di riassumere il link in la tua risposta. – michaelb958