1

ListViewVB.Net Windows Forms プロジェクトに標準コントロールがあります。ビューはタイルに設定されています。ユーザーは、次のように表示されると報告しています。

タイル モードでの ListView の間隔の問題

どうすれば問題を解決できるか知っていますか? すべての設計作業は VS 2010 を使用して行われました。

4

1 に答える 1

5

はい、これは、リスト ビューの TileSize プロパティを変更し、ビデオ DPI 設定がより高いマシンでプログラムを実行した場合に発生します。すると文字が大きくなります。テキストがタイルに収まらなくなる。他のすべては、Form クラスに組み込まれている自動スケーリングによって処理されます。

テキストが再び収まるように、タイルのサイズを拡大して拡大する必要があります。次のようにします。

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
    MyBase.OnLoad(e)
    Using gr = Me.CreateGraphics
        Dim tile As New Size( _
          CInt(Me.ListView1.TileSize.Width * gr.DpiX / 96), _
          CInt(Me.ListView1.TileSize.Height * gr.DpiY / 96))
        ListView1.TileSize = tile
    End Using
End Sub

これは、既定の 1 インチあたり 96 ドットの設定を持つマシンでフォームをデザインしたことを前提としています。元のタイル サイズに少し余裕を持たせてください。TrueType ヒンティングのため、スケーリングは完全ではありません。

于 2011-02-18T06:51:31.573 に答える