ist es möglich, ein Bild in einer Datagrid-Zelle anzuzeigen? Ich arbeite derzeit mit Compact Framework 3.5.Bilder im Datagrid mit Compact Framework anzeigen
irgendwelche Tipps dazu?
ist es möglich, ein Bild in einer Datagrid-Zelle anzuzeigen? Ich arbeite derzeit mit Compact Framework 3.5.Bilder im Datagrid mit Compact Framework anzeigen
irgendwelche Tipps dazu?
Der einzige Weg, wie ich das weiß, wäre wie der Trick für das Rendern von Textfeldern im Raster, indem man einen Trick verwendet, um einige Bilder über das Raster zu malen.
Einer der CF team posted something about customising the grid on their site.
Wenn Sie in der Lage sind, eine Lösung von Drittanbietern zu nutzen, müssen Sie einen Blick auf Resco SmartGrid.
Es ist der gleiche Prozess wie tun multiline rows, changing row colors, making the text right-to-left oder highlighting a row: Sie custom draw haben.
Wie die anderen Poster kommentiert, müssen Sie Ihre eigenen rollen. Zum Glück ist das nicht allzu schwierig.
In meiner Anwendung brauchte ich eine Möglichkeit, ein 16x16-Symbol in einer bestimmten Spalte zu zeichnen. Ich habe eine neue Klasse erstellt, die von DataGridColumnStyle
erbt, wodurch die Anwendung auf ein DataGrid
über ein Objekt DataGridTableStyle
vereinfacht wird.
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);
}
}
}
Sie können sehen, dass ich die öffentliche Eigenschaft definiert ColumnIcon
so kann ich das Symbol angeben ich außerhalb dieser Klasse angezeigt werden müssen.
Nun, um es tatsächlich auf einem Datagrid zu verwenden, würden Sie einen Ausschnitt wie haben:
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);
Das für die Anwendung der DataGridTableStyle
ein ziemlich einfaches Beispiel ist - ich tatsächlich eine Menge weiterer Anpassung an dem Rest meiner DataGrid
Spalten. Aber es sollte dir helfen, was du machen willst.
http://www.cf-technologies.net/compactgrid.php. Sie können das CustomDraw-Ereignis der Zelle verwenden.
Wenn ich ein Bild in Zelle laden muss ?? Wie mache ich es ? – user3383301