2009-04-28 7 views
0

Ich versuche, ListViewItems auf einem benutzerdefinierten Benutzersteuerelement manuell zu zeichnen. Das Steuerelement selbst ist ein Wrapper um einen ListView, der als privates Member in der Klasse gespeichert ist.Zeichnen von ListViewItem übertreffen VisibleClipBounds

Es ist ein DrawListViewItemEventHandler angehängt, um das manuelle Zeichnen für diese Objekte zu erlauben, und das scheint größtenteils zu funktionieren. Das Problem, das ich habe, ist, wo der Text für das ListViewItem (im großen Bildmodus) lang ist.

Ich zeichne ein begrenzendes Rechteck um das ListViewItem mit verschiedenen Themen, und ich messe dann die Größe des Textes mit Graphics.MeasureString() und zeichne den Text manuell. Was ich jedoch finde, ist, dass die vertikale Zeichnung bei 2,5 Textzeilen beschneidet, da die Beschriftung außerhalb der VisibleClipBounds des Grafikkontextes liegt, an den ich übergeben wurde.

Es scheint ein bisschen seltsam, aber ich bin mir nicht sicher, warum so etwas passieren sollte und kann nicht herausfinden, wie man das Problem umgehen kann.

+1

Welches Verhalten ist seltsam? –

+0

Ich stimme Adam zu. Das scheint mir richtig. Was willst du passieren? –

+0

Nun, ich würde erwarten, dass das ListViewItem in der Lage sein würde, seinen gesamten Text zu zeichnen (zumindest wenn ausgewählt, was es an diesem Punkt ist) ... im Grunde eine Clip-Grenze groß genug, um sich in seiner Gesamtheit zu zeichnen. – Ian

Antwort

0

Sie können Kachelansicht und TileSize verwenden, um genügend Platz zum Zeichnen Ihres Texts zu geben.

Die ListView kann nicht garantieren, dass ihr gesamter Text gezeichnet wird: der Text könnte sehr groß sein.

Verwandte Themen