Comme la plupart des développeurs WPF le savent, le réglage ScrollViewer.CanContentScroll
à false
désactivera la virtualisation; mais je voudrais savoir comment cela fonctionne, parce que j'essaie d'activer la virtualisation tout en définissant ScrollViewer.CanContentScroll
à false
.Pourquoi définir ScrollViewer.CanContentScroll sur false désactiver la virtualisation
Répondre
« ScrollViewer permet actuellement deux modes de défilement:. Défilement pixel par pixel lisse (CanContentScroll = false) ou le défilement (CanContentScroll = true) élément par élément discret Actuellement WPF prend en charge la virtualisation de l'interface utilisateur uniquement lors du défilement par poste Le défilement basé sur les pixels est également appelé "défilement physique" et le défilement par éléments est également appelé "défilement logique". "
La virtualisation nécessite un défilement basée sur l'article de sorte qu'il peut garder une trace des unités logiques (éléments) actuellement en vue ... Réglage du ScrollViewer à base de pixels de défilement leur est pas plus concept d'unités logiques, mais seulement des pixels !! !
Je suis souvent demandé s'il y a un moyen de contourner cette limitation. Eh bien, tout est possible, mais il n'y a pas facile solution de contournement. Vous devrez réimplémenter des parties significatives de la logique de virtualisation actuelle pour combiner le défilement basé sur les pixels avec la virtualisation de l'interface utilisateur. Vous devrez également résoudre certains problèmes intéressants qui l'accompagnent. Par exemple, comment calculez-vous la taille du pouce lorsque les conteneurs d'articles ont des hauteurs différentes? (N'oubliez pas que vous ne connaissez pas la hauteur des conteneurs virtualisés - vous ne connaissez que la hauteur des conteneurs actuellement affichés.) Vous pouvez supposer une moyenne basée sur les hauteurs que vous connaissez, ou vous pouvez garder une liste avec les la hauteur des objets lorsque les objets sont mis en mémoire (ce qui augmenterait la précision de la taille du pouce lorsque l'utilisateur interagit avec le contrôle). Vous pouvez également décider que le défilement basé sur des pixels ne fonctionne qu'avec des objets de même hauteur, ce qui simplifierait la solution. Donc, oui, vous pourriez trouver une solution pour contourner cette limitation, mais ce n'est pas trivial.
- 1. désactiver la virtualisation de dossiers dans Windows
- 2. Comment définir ActiveModel :: Base.include_root_in_json sur false?
- 3. Empêcher la virtualisation UAC?
- 4. ModelState.IsValid == false, pourquoi?
- 5. Désactiver la virtualisation du registre pour Visual Studio 2008 sur Server 2008
- 6. Pourquoi string.contains() retourne false?
- 7. Pourquoi is_array() renvoie false?
- 8. Pourquoi isNaN (123.) Renvoie false?
- 9. Dans Zend SubForm, comment définir Legend escape sur false?
- 10. comment faire de la virtualisation?
- 11. définir Enabled = "false" à radiobuttonlist puis ne peut pas activer/désactiver
- 12. HttpProtocolParams.setUseExpectContinue (params, false) - quand définir true?
- 13. Le regroupement empêche la virtualisation?
- 14. Pourquoi InvokeRequired = False via Delegate.BeginInvoke?
- 15. Pourquoi $ ("body") == $ ("body") renvoie false?
- 16. Pourquoi ValidateInput (False) ne fonctionne pas?
- 17. Pourquoi ai-je besoin que resolveexternals soit défini sur false?
- 18. WPF Virtualisation d'un canevas
- 19. Pourquoi FormsAuthentication.RedirectFromLoginPage() se termine par context.Response.Redirect (..., false)?
- 20. Virtualisation DataGrid UI
- 21. Pourquoi ne puis-je pas définir DEBUG = False dans mon application django sur dreamhost sans avoir d'erreur?
- 22. Virtualisation de l'infobulle WPF
- 23. WPF vis de virtualisation ListBox up affichés articles
- 24. Pourquoi retourner false avec onSubmit rechargement?
- 25. Gaspillage des ressources dans la virtualisation
- 26. Pourquoi ne pas définir IGNORE_DUP_KEY sur ON?
- 27. Virtualisation matérielle - Requête d'hyperviseur
- 28. Pourquoi (Si false renvoie "true") ... retourne true?
- 29. WPF: la virtualisation TreeView ne fonctionne pas
- 30. Virtualisation de WrapPanel