كيف أقوم بتغيير لون تقاطع الرؤوس في datagrid WPF؟


مرحبا الرجال
يرجى التفضل بمشاهدة الصورة التقاطع – Freeimage.host[^]

كما ترون هناك مسافة بيضاء بين RowHeaders وColumnHeaders في DataGrid. لذلك أريد أن أعرف كيف يمكنني تغيير لونه؟
شكرًا.

ما حاولت:

حاولت تغيير خلفية RowHeader، وأيضًا ColumnHeader، لكن لونه لم يتغير.
لقد بحثت في الإنترنت ولكن لم أتمكن من العثور على أي رمز له.

الحل 1

أفضل مكان لفهم عنصر تحكم WPF هو إلقاء نظرة على القالب الافتراضي. بالنسبة لـ DataGrid يمكن العثور عليه هنا: أنماط وقوالب DataGrid – WPF .NET Framework | مايكروسوفت تعلم[^].

ما تشير إليه هو حدد الزر الكل في الزاوية العلوية اليسرى من DataGrid.

باستخدام الرابط أعلاه، وهذا هو DataGridSelectAllButtonStyle. هذا هو النمط الأول الموجود في الصفحة المرتبطة أعلاه.

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

قم بالبحث في القالب ويمكنك معرفة مكان تطبيقه. هذا هو النمط الذي تحتاج إلى تعديله.

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>

لذلك تحتاج إلى تعديل DataGridSelectAllButtonStyle وتطبيق جديد ControlTemplate. يوجد رابط في تلك الصفحة سيوجهك حول كيفية إنشاء ملف ControlTemplate ورابط لعينة في أسفل الصفحة.

コメント

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