Làm cách nào để thay đổi màu giao điểm của các tiêu đề trong datagrid WPF?

lập trình


chào các cậu
Xin vui lòng xem hình ảnh Giao lộ — Freeimage.host[^]

Như bạn thấy có một khoảng trắng giữa RowHeaders và ColumnHeaders trong DataGrid. Vì vậy, tôi cần biết làm thế nào tôi có thể thay đổi màu sắc của nó?
Cảm ơn.

Những gì tôi đã thử:

Tôi đã cố gắng thay đổi nền của RowHeader, cũng như ColumnHeader, nhưng màu của nó không thay đổi.
Tôi đã tìm kiếm trên Internet nhưng tôi không thể tìm thấy bất kỳ mã nào cho nó.

Giải pháp 1

Nơi tốt nhất để hiểu điều khiển WPF là xem Mẫu mặc định. Đối với DataGrid, nó có thể được tìm thấy ở đây: Các kiểu và mẫu DataGrid – WPF .NET Framework | Microsoft Tìm hiểu[^].

Những gì bạn đang trỏ đến là Nút chọn tất cả ở góc trên bên trái của DataGrid.

Sử dụng liên kết ở trên, đó là DataGridSelectAllButtonStyle. Đây là phong cách đầu tiên được tìm thấy trên trang được liên kết ở trên.

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

Thực hiện tìm kiếm mẫu và bạn có thể thấy nó được áp dụng ở đâu. Đây là phong cách mà bạn cần sửa đổi.

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>

Vì vậy bạn cần phải sửa đổi DataGridSelectAllButtonStyle và áp dụng một cái mới ControlTemplate. Có một liên kết trên trang đó sẽ hướng dẫn bạn cách tạo một ControlTemplate và một liên kết đến một mẫu ở cuối trang.

コメント

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