2010-06-14 6 views
1

J'ai couru dans un cas où j'ai un panneau personnalisé (hérite de Panel) et je l'utilise en tant que ItemsPanel dans un ListView. Lorsque je redimensionne le conteneur dans lequel il se trouve, si je le redimensionne plus petit, la fonction MeasureOverride de mon panneau est appelée une fois, mais si je la redimensionne (disons 100 à 300), elle appelle MeasureOverride et ArrangeOverride pour chaque valeur entre 100 et 300, par incréments de 2 (donc 102, 104, etc.). La chose étrange est que le conteneur redimensionne immédiatement (sa taille atteint 300 immédiatement).La disposition WPF appelle MeasureOverride à plusieurs reprises par incréments de 2?

Cela ne semble pas important ce que je retourne de MeasureOverride - il le fait juste. Je voudrais pouvoir le réaliser dans une très petite application et le poster ici, mais je n'ai pas été capable de le reproduire comme ça pour le moment. Je peux le reproduire toute la journée dans mon application.

Est-ce que quelqu'un sait ce qui pourrait causer cela?

+0

Je suppose que ListView fait quelque chose de bizarre quand il redimensionne, et cherche la taille idéale pour son enfant, ou quelque chose comme ça. À quoi ressemble la trace de la pile? –

Répondre

0

J'ai été capable de contourner ce problème en définissant dynamiquement la propriété MinWidth de mon panneau de sorte qu'elle change avec la taille du conteneur. Cela a empêché les appels inutiles à MeasureOverride. Je suis encore un peu incertain pourquoi cela se passait bien.