使用Compact Framework在datagrid中显示图像

Bee*_*gud 3 datagrid compact-framework

是否可以在数据网格单元格中显示图像?我目前正在使用紧凑框架3.5.

有什么提示吗?

CBo*_*ono 9

就像其他海报所评论的那样,你需要自己推出.幸运的是,这并不太难.

在我的应用程序中,我需要一种方法在特定列中绘制一个16x16图标.我创建了一个继承自的新类DataGridColumnStyle,这使得DataGrid通过DataGridTableStyle对象很容易应用.

class DataGridIconColumn : DataGridColumnStyle {

public Icon ColumnIcon {
    get;
    set;
}

protected override void Paint( Graphics g, Rectangle bounds, CurrencyManager source, int rowNum, Brush backBrush, Brush foreBrush, bool alignToRight ) {

    // Fill in background color
    g.FillRectangle( backBrush, bounds );

    // Draw the appropriate icon
    if (this.ColumnIcon != null) {
        g.DrawIcon( this.ColumnIcon, bounds.X, bounds.Y );
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以看到我定义了公共属性,ColumnIcon因此我可以指定我需要在此类之外显示的图标.

现在,要在DataGrid上实际使用它,你需要一个代码片段:

DataGridTableStyle ts = new DataGridTableStyle();

DataGridIconColumn dgic = new DataGridIconColumn();
dgic.ColumnIcon = Properties.Resources.MyIcon;
dgic.MappingName = "<your_column_name>";
dgic.HeaderText = "<your_column_header>";

ts.GridColumnStyles.Add(dgic);

this.myDataGrid.TableStyles.Add( ts );
Run Code Online (Sandbox Code Playgroud)

这是一个非常简单的应用示例DataGridTableStyle- 我实际上在其余的DataGrid列上做了很多进一步的自定义.但它应该让你开始你想做的事情.