MESCIUS SPREAD for WPF 4.0J - GcSpreadSheet > 開発者ガイド > セル型 > イメージ型セル |
イメージ型セルはセルに画像を表示します。ImageCellTypeクラスを使用して設定します。
主な設定は次のとおりです。
イメージ型セルの値は画像のソースを表す ImageSource または画像を表すバイナリ データであることが求められます。たとえば、セルの値がイメージ ファイルへのパスを表す文字列である場合があります。このようにセルの値が ImageSource 型、または画像を表すバイナリ データでない場合、値を ImageSource に変換する ImageConverter を設定することで対応できます。ImageConverter は IImageSourceConverter インタフェースを実装して作成します。
スプレッドシートにイメージ型セルを設定する方法は2つあります。
次のサンプルコードはXAMLでイメージ型セルを設定して、コードで画像のパスを定義します。
コードのコピー
|
|
---|---|
<Window.Resources> <local:SpreadFilePathToImageConverter x:Key="MyImageConverter"/> </Window.Resources> <Grid> <gss:GcSpreadSheet x:Name="GcSpreadSheet" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" > <gss:GcSpreadSheet.Sheets> <gss:SheetInfo ColumnCount="20" RowCount="50"> <gss:SheetInfo.Columns> <gss:ColumnInfo Width="250"> <gss:ColumnInfo.CellType> <CT:ImageCellType Stretch="Fill" ImageConverter="{StaticResource MyImageConverter}"/> </gss:ColumnInfo.CellType> </gss:ColumnInfo> </gss:SheetInfo.Columns> </gss:SheetInfo> </gss:GcSpreadSheet.Sheets> </gss:GcSpreadSheet> </Grid> |
コードのコピー
|
|
---|---|
// イメージ型セルの値を設定します。 GcSpreadSheet.Workbook.ActiveSheet.Cells["A2"].Value = "pack://application:,,,/Images/SpreadPicture.png"; |
コードのコピー
|
|
---|---|
' イメージ型セルの値を設定します。 GcSpreadSheet.Workbook.ActiveSheet.Cells("A2").Value = "pack://application:,,,/Images/SpreadPicture.png" |
次のサンプルコードはアプリケーションの Image フォルダーに保存された SpreadPicture.png ファイルをイメージ型セルに読み込みます。SpreadFilePathToImageConverter クラスが、ファイルのパスを BitmapImage に変換します。
コードのコピー
|
|
---|---|
// ImageCellTypeを設定します。 ImageCellType img = new ImageCellType(); img.Stretch = Stretch.Fill; img.ImageConverter = new SpreadFilePathToImageConverter(); GcSpreadSheet.Workbook.ActiveSheet.Cells["C2"].CellType = img; // 値を設定します。 GcSpreadSheet.Workbook.ActiveSheet.Cells["C2"].Value = "pack://application:,,,/Images/SpreadPicture.png"; |
コードのコピー
|
|
---|---|
' ImageCellTypeを設定します。 Dim img As ImageCellType = New ImageCellType() img.Stretch = Stretch.Fill img.ImageConverter = New SpreadFilePathToImageConverter() GcSpreadSheet.Workbook.ActiveSheet.Cells("C2").CellType = img ' 値を設定します。 GcSpreadSheet.Workbook.ActiveSheet.Cells("C2").Value = "pack://application:,,,/Images/SpreadPicture.png" |
コードのコピー
|
|
---|---|
public class SpreadFilePathToImageConverter : IImageSourceConverter { public ImageSource GetImageSource(object value) { if (value != null) { BitmapImage bmi = new BitmapImage(new Uri(value.ToString(), UriKind.Absolute)); return bmi; } else return null; } } |
コードのコピー
|
|
---|---|
Public Class SpreadFilePathToImageConverter Implements IImageSourceConverter Public Function GetImageSource(ByVal value As Object) As ImageSource If value IsNot Nothing Then Dim bmi As BitmapImage = New BitmapImage(New Uri(value.ToString(), UriKind.Absolute)) Return bmi Else Return Nothing End If End Function End Class |