2010-08-15 4 views
2

du ListBox La plupart du temps ListBox apparaît comme ceci:frontière ListBoxItem est parfois caché derrière la barre de défilement

alt text

Mais chaque fois dans un certain temps, il ressemble à ceci:

alt text

Une idée de ce qui ne va pas?

--Edit--

J'ai enlevé les modèles de contrôle de la question, parce que quand je les ai retirées de mon programme le problème existait encore. Est-ce un bug WPF?

+0

Pouvez-vous poster le code pertinent? –

Répondre

0

Avez-vous essayé de définir SnapsToDevicePixels = "True" sur la bordure de l'élément ListBox? Puisque l'épaisseur est de 1 "unité périphérique indépendante" je pense que la frontière tombe sur une limite de pixel.

+0

Juste essayé et ça ne change rien. – Justin

0

J'ai eu presque le même problème exact, voir my question, et je n'ai jamais trouvé une vraie réponse. Ce que je fais de nos jours est dépouiller le scrollviewer du modèle de listbox et incorporer la liste entière elle-même dans un nouveau scrollviewer. Ne fonctionne pas pour toutes les occasions, mais c'est quand même un bon truc.

Le XAML ressemble à ceci:

<ScrollViewer> 

    <ListBox> 

    <!--strip default presenter--> 
    <ItemsControl.Template> 
     <ControlTemplate> 
     <ItemsPresenter /> 
     </ControlTemplate> 
    </ItemsControl.Template> 

    <ListBox.ItemTemplate> 
     <DataTemplate> 
     <!--data template goes here--> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 

    </ListBox> 

</ScrollViewer> 

Je ne suis pas un grand sorcier de XAML donc si quelqu'un pouvait transfrom cela en un morceau de code réutilisable, par tous les moyens de le faire.

Questions connexes