wpf datagrid - 如何删除黑色选中的边框?

时间:2017-03-25 13:14:34

标签: c# wpf datagrid

我需要帮助, 当我在单元格中单击datagrid时,我想选择像图像(please look at image)中的所有行,但没有黑色边框。如何禁用或将颜色更改为透明?我试过这个:

<DataGrid.Resources>
    <Style TargetType="DataGridCell">
      <Setter Property="BorderThickness" Value="0"/>
      <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
    </Style>
  </DataGrid.Resources>

但不能工作。没有什么变化。

2 个答案:

答案 0 :(得分:4)

您需要设置selected cell样式的样式。为此,您需要在style标记内写下此内容:

<Style.Triggers>
   <Trigger Property="IsSelected" Value="True">
      <Setter Property="BorderThickness" Value="0"/>
    </Trigger>
</Style.Triggers>

您只需使用Triggers希望它能为您效劳。您还可以更改所选单元格的背景或所需的任何属性。

答案 1 :(得分:0)

以下示例自定义wpf datagrid(边框,单元格边角等)。您可以根据需要进行修改。

<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
  <Style x:Key="cellStyle" TargetType="DataGridCell">
    <Setter Property="Padding" Value="0" />
    <Setter Property="Margin" Value="2" />
    <Setter Property="Background" Value="Black" />
    <Setter Property="Template">
      <Setter.Value>
            <ControlTemplate TargetType="DataGridCell">
                <Border Background="Black" BorderThickness="0">
                  <Border x:Name="border"
                          BorderBrush="White"
                          BorderThickness="2"
                          Background="Black"
                          CornerRadius="5">
                      <ContentPresenter />
                  </Border>
                </Border>
                <ControlTemplate.Triggers>
                  <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="true">
                    <Setter TargetName="border" Property="Background" Value="Orange"/>
                  </DataTrigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

  <Style x:Key="rowStyle" TargetType="DataGridRow">
    <Setter Property="Padding" Value="0" />
    <Setter Property="Margin" Value="0" />
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="Background" Value="Black" />
  </Style>

 <Grid>  
<DataGrid HeadersVisibility="None" GridLinesVisibility="None" SelectionMode="Single" SelectionUnit="Cell" IsReadOnly="true"
  RowStyle="{StaticResource rowStyle}" CellStyle="{StaticResource cellStyle}" 
  Background="Black" Foreground="White" ItemsSource="{Binding MyData}" />
 </Grid>
 </Page>

希望它对你有所帮助。

此致

Thiyagu Rajendran

**如果答案是有帮助的,请将答案标记为答案,如果答案没有,请将其取消标记。