04.データをクリップボードにコピーする方法を設定する
DataGridに表示されているデータはクリップボードにコピーすることが可能です。クリップボードへのコピーを許可するには、ClipBoardCopyModeプロパティにClipBoardCopyMode列挙体の値を設定します。
| メンバー名 | 説明 |
| None | クリップボードへのコピーを許可しない |
| ExcludeHeader | 選択したデータをクリップボードにコピーする。列ヘッダーは含まない |
| IncludeHeader | 選択したデータをクリップボードにコピーする。列ヘッダーも含む |
下記は、選択されたデータをクリップボードにコピーする例です。ラジオボタン「コピーを許可しない」「列ヘッダーを含めずにコピーする」「列ヘッダーも含めてコピーする」の選択状態に合わせてコピーモードを変更します。
DataGridでデータを選択してコピーを行うと「このアプリケーションがクリップボードにアクセスするのを許可しますか?」のメッセージが表示されます。コピーする場合は[はい]をクリックします。
コピーを行い、Excelに貼り付けた例を下図に示します(この例はCustomerIDが3の行をクリップボードにコピーしています)。
<sdk:Label Content="クリップボードへのコピー方法" FontSize="12" />
<Border BorderBrush="Silver" BorderThickness="2" CornerRadius="5">
<StackPanel Orientation="Horizontal" Margin="5">
<RadioButton Content="コピーを許可しない" Name="rdoNone" />
<RadioButton Content="列ヘッダーを含めずにコピーする" Name="rdoExcludeHeader"/>
<RadioButton Content="列ヘッダーも含めてコピーする" Name="rdoIncludeHeader"/>
</StackPanel>
</Border>
<sdk:DataGrid ClipboardCopyMode="None">
:省略
</sdk:DataGrid>
' クリップボードへのコピー方法変更時の処理
Private Sub rdoCopy_Checked(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles rdoIncludeHeader.Checked, rdoExcludeHeader.Checked, rdoNone.Checked
If rdoNone.IsChecked Then
'★★★コピーを許可しない★★★
CustomerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.None
ElseIf rdoExcludeHeader.IsChecked Then
'★★★ヘッダーを含めないでコピーする★★★
CustomerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.ExcludeHeader
ElseIf rdoIncludeHeader.IsChecked Then
'★★★ヘッダーを含めてコピーする★★★
CustomerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader
End If
End Sub
// クリップボードへのコピー方法変更時の処理
private void rdoCopy_Checked(object sender, RoutedEventArgs e)
{
if ((bool)rdoNone.IsChecked)
{
// ★★★コピーを許可しない★★★
customerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.None;
}
else if ((bool)rdoExcludeHeader.IsChecked)
{
// ★★★ヘッダーを含めないでコピーする★★★
customerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.ExcludeHeader;
}
else if ((bool)rdoIncludeHeader.IsChecked)
{
// ★★★ヘッダーを含めてコピーする★★★
customerDataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
}
}
データをクリップボードにコピーする方法を設定にするにはClipBoardCopyModeプロパティを使用する。
05.列ヘッダー高さ/行ヘッダー幅を設定する
列ヘッダー高さはColumnHeaderHeightプロパティ、行ヘッダー幅はRowHeaderWidthプロパティで設定することができます。
また、列ヘッダーと行ヘッダーの表示方法を設定するにはHeadersVisibilityプロパティにDataGridHeadersVisibility列挙体の値を設定します。
| メンバー名 | 説明 |
| All | 行ヘッダーと列ヘッダーの両方を表示する |
| Column | 列ヘッダーのみを表示する |
| Row | 行ヘッダーのみを表示する |
| None | ヘッダーを表示しない |
下記は列ヘッダー高さと行ヘッダー幅を設定する例です。
列ヘッダーを高くすることにより項目の名の上下にスペースを作っています。また、行ヘッダーは幅を広くすることで現在行を示す矢印が表示されています。
<sdk:DataGrid HeadersVisibility="All"
ColumnHeaderHeight="50" RowHeaderWidth="30">
:省略
</sdk:DataGrid>
'行ヘッダーと列ヘッダーを表示する CustomerDataGrid.HeadersVisibility = DataGridHeadersVisibility.All '★★★列ヘッダー高さと行ヘッダー幅を設定する★★★ CustomerDataGrid.ColumnHeaderHeight = 50 CustomerDataGrid.RowHeaderWidth = 30
// 行ヘッダーと列ヘッダーの両方を表示する customerDataGrid.HeadersVisibility = DataGridHeadersVisibility.All; // ★★★列ヘッダー高さと行ヘッダー幅を設定する★★★ customerDataGrid.ColumnHeaderHeight = 50; customerDataGrid.RowHeaderWidth = 30;
列ヘッダー高さを設定するにはColumnHeaderHeightプロパティを、行ヘッダー幅を設定するにはRowHeaderWidthプロパティを使用する。



