1

ListView在 VB.Net Windows Forms 项目中有一个标准控件。视图设置为平铺。用户报告他们看到以下内容:

Tile模式下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

这假设您在具有默认每英寸 96 点设置的机器上设计表单。在原始图块大小上留一点余地,由于 TrueType 提示,缩放并不完美。

于 2011-02-18T06:51:31.573 回答