Bagaimana cara mengubah warna perpotongan header di datagrid WPF?

pemrograman


Hai kawan
Silakan lihat gambarnya Persimpangan — Freeimage.host[^]

Seperti yang Anda lihat, ada spasi antara RowHeaders dan ColumnHeaders di DataGrid. Jadi saya perlu tahu bagaimana cara mengubah warnanya?
Terima kasih.

Apa yang saya coba:

Saya mencoba mengubah latar belakang RowHeader, juga ColumnHeader, tetapi warnanya tidak berubah.
Saya mencari di internet tetapi saya tidak dapat menemukan kode apa pun untuk itu.

Solusi 1

Tempat terbaik untuk memahami kontrol WPF adalah dengan melihat Template Default. Untuk DataGrid dapat ditemukan di sini: Gaya dan Templat DataGrid – WPF .NET Framework | Microsoft Belajar[^].

Yang Anda maksud adalah Pilih tombol Semua di pojok kiri atas DataGrid.

Menggunakan tautan di atas, itulah DataGridSelectAllButtonStyle. Ini adalah gaya pertama yang ditemukan pada halaman yang ditautkan di atas.

XML
<Style TargetType="{x:Type Button}"
       x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, 
       TypeInTargetAssembly={x:Type DataGrid}}">
    <!-- trimmed -->
</Style>

Lakukan pencarian pada template dan Anda dapat melihat di mana template tersebut diterapkan. Ini adalah gaya yang perlu Anda modifikasi.

XML
<ControlTemplate TargetType="{x:Type DataGrid}">
    <!-- trimmed -->
		<Button Focusable="false"
			Command="{x:Static DataGrid.SelectAllCommand}"
			Style="{DynamicResource {ComponentResourceKey 
			ResourceId=DataGridSelectAllButtonStyle, 
			TypeInTargetAssembly={x:Type DataGrid}}}"
			Visibility="{Binding HeadersVisibility, 
			ConverterParameter={x:Static DataGridHeadersVisibility.All}, 
			Converter={x:Static DataGrid.HeadersVisibilityConverter}, 
			RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"
			Width="{Binding CellsPanelHorizontalOffset, 
			RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
    <!-- trimmed -->
</ControlTemplate>

Jadi, Anda perlu memodifikasi DataGridSelectAllButtonStyle dan menerapkan yang baru ControlTemplate. Ada link di halaman itu yang akan mengarahkan Anda tentang cara membuat ControlTemplate dan tautan ke sampel di bagian bawah halaman.

コメント

タイトルとURLをコピーしました