wpf如何在一个空白的listview中添加框线,就和excel类似的那种

就是当list中没有数据时,也有框线,而非空白的一片,给list设置了固定的高度,三列。1111111111111111111111

excel的表格又不是listview做的。wpf有现成的和第三方的网格控件,大都以grid命名,你可以任意选择。

Imports System
2: Imports System.Collections.Generic
3: Imports System.ComponentModel
4: Imports System.Text
5: Imports System.Web
6: Imports System.Web.UI
7: Imports System.Web.UI.WebControls
8: Imports System.Drawing
9:

10: < _
11: Description("GridView 控件"), _
12: ToolboxData("<{0}:TBGridView runat=server></{0}:TBGridView>") _
13: > _
14: Public Class TBGridView
15: Inherits GridView
16: Private FGridLineColor As Color
17:

18: '''
19: ''' GridView 网格线颜色。
20: '''
21: < _
22: Description("GridView 网格线颜色"), _
23: TypeConverter(GetType(WebColorConverter)), _
24: Category("Appearance"), _
25: DefaultValue(GetType(Color), "")> _
26: Public Property GridLineColor() As Color
27: Get
28: Return FGridLineColor
29: End Get
30: Set(ByVal value As Color)
31: FGridLineColor = value
32: End Set
33: End Property
34:

35: '''
36: ''' 输出客户端检视的 HTML 码。
37: '''
38: ''' 用来在客户端浏览器上呈现服务器控件内容。
39: Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
40: If Me.GridLineColor <> Drawing.Color.Empty Then
41: Me.Attributes("bordercolor") = System.Drawing.ColorTranslator.ToHtml(Me.GridLineColor)
42: End If
43: MyBase.Render(writer)
44: End Sub
45: End Class

ListViewItem相当于一行,但是它没有单元格边框,实现起来比较麻烦,建议改用datagrid控件。

如果非要用ListView,需要单独设置每一列的模板,模板中加border。

图片说明