Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在XAML中设置数据网格左上角的样式?_C#_.net_Wpf_Xaml_Datagrid - Fatal编程技术网

C# 如何在XAML中设置数据网格左上角的样式?

C# 如何在XAML中设置数据网格左上角的样式?,c#,.net,wpf,xaml,datagrid,C#,.net,Wpf,Xaml,Datagrid,与此问题相关: 我有一个DataGrid(尚未完成,请原谅样式)。如何使用XAML更改左上角的背景色(与另一个问题中的C#相反) 以下是我当前的XAML: <DataGrid x:Name="DataGrid" HorizontalAlignment="Center" VerticalAlignment="Center" ColumnWidth="100" ColumnHeaderHeight="50" RowHeight="50" RowHeaderWidth="1

与此问题相关:

我有一个
DataGrid
(尚未完成,请原谅样式)。如何使用XAML更改左上角的背景色(与另一个问题中的C#相反)

以下是我当前的XAML:

<DataGrid x:Name="DataGrid" HorizontalAlignment="Center" VerticalAlignment="Center"
          ColumnWidth="100" ColumnHeaderHeight="50" RowHeight="50" RowHeaderWidth="115" Padding="5"
          BorderBrush="#FF646464" FontSize="18" FontFamily="Segoe UI"
          CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="False" CanUserResizeRows="False"
          Focusable="False" IsEnabled="False" IsReadOnly="True">
    <DataGrid.Background>
        <SolidColorBrush Color="#FFFFFFC8"/>
    </DataGrid.Background>
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding In}" Header="In"/>
        <DataGridTextColumn Binding="{Binding Out}" Header="Out"/>
        <DataGridTextColumn Binding="{x:Null}" Header="Hours"/>
    </DataGrid.Columns>
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="Background" Value="#FFFFFFC8"/>
            <Setter Property="BorderBrush" Value="DarkSlateGray"/>
            <Setter Property="BorderThickness" Value="1, 2"/>
            <Setter Property="FontWeight" Value="SemiBold"/>
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
            <Setter Property="Padding" Value="5"/>
        </Style>
    </DataGrid.ColumnHeaderStyle>
    <DataGrid.RowBackground>
        <SolidColorBrush Color="Transparent"/>
    </DataGrid.RowBackground>
    <DataGrid.RowHeaderStyle>
        <Style TargetType="{x:Type DataGridRowHeader}">
            <Setter Property="Background" Value="#FFFFFFC8"/>
            <Setter Property="BorderBrush" Value="DarkSlateGray"/>
            <Setter Property="BorderThickness" Value="2, 1"/>
            <Setter Property="FontWeight" Value="SemiBold"/>
            <Setter Property="Padding" Value="5"/>
        </Style>
    </DataGrid.RowHeaderStyle>
    <DataGrid.RowHeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridRow}}, Path=Item.Day}"/>
        </DataTemplate>
    </DataGrid.RowHeaderTemplate>
</DataGrid>


奖励:如何在当前只有1px边框的行/列标题上获得2px边框?

正确,因此如果我们在第一个代码示例的顶部查看

<!--Style and template for the button in the upper left corner of the DataGrid.-->

声明的样式模板为:

<Style TargetType="{x:Type Button}"
       x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, 
               TypeInTargetAssembly={x:Type DataGrid}}">

我们现在知道它在哪里了。在那之后,只需将所述样式部分编辑到我们的核心内容中,并在实例级别或模板等处重写即可


至于您的额外问题,如果我们在
上查看相同的样式模板,我们将在
x:Name=“RowHeaderOrder”
上看到硬设置的
边框厚度,我们将更改为任何样式。其中,这同样适用于
模板,因为
x:Name=“ColumnHeaderOrder”
上还有另一个硬设置的
边框厚度
,即“1”。测试后,我发现只有一种设置颜色的方法。 使用DataGrid的背景色和按钮的不透明度0:-)



如何仅针对此实例覆盖左上角的样式?我尝试将
样式(以及一些样式值)添加到
中,但没有任何更改。您可以分享您尝试的内容吗?否则,等我有空的时候,我会去加载一个WPF项目,如果你愿意,我会亲自测试,但不能保证这将是最快速的响应,忙碌的一周。嗨,克里斯,不用担心,我感谢你的帮助!我将
添加到包含
数据网格的
窗口的
中。我想我的问题是,我不知道如何将这种新样式应用于
按钮
(在我的
DataGrid
XAML中没有
按钮
)。再次感谢。您将其放入其中,并将x:键更改为
DataGridSelectAllButtonStyle
?您可以在下面的答案中看到完整的示例代码:
<DataGrid Background="Yellow" RowHeaderWidth="100">
   <DataGrid.Resources>
      <Style TargetType="{x:Type Button}" x:Key="{ComponentResourceKey ResourceId=DataGridSelectAllButtonStyle, TypeInTargetAssembly={x:Type DataGrid}}">
         <Setter Property="Opacity" Value="0" />
      </Style>
   </DataGrid.Resources>
</DataGrid>