2017-03-25 1 views
0

Ich brauche Hilfe, Wenn ich auf Datagrid bei Zelle klicke, möchte ich alle Zeile wie in Bild (please look at image), aber ohne schwarzen Rand auswählen. Wie deaktiviere ich oder ändere die Farbe in transparent? Ich habe das versucht:wpf datagrid - wie man schwarzen ausgewählten Rand entfernt?

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

aber nicht funktionieren. Nichts verändert sich.

Antwort

1

Sie müssen die selected cell nicht nur Zellen stylen. Um dies zu tun müssen Sie dies in Ihrem style-Tag schreiben:

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

Alles, was Sie brauchen, wurde mit Triggers hoffe, es wird für Sie arbeiten. Sie können auch den Hintergrund für die ausgewählte Zelle oder die gewünschte Eigenschaft ändern.

+0

großartig! Kannst du mir auch sagen, wie ich diese Grenze ändern kann? BorderColor nicht vorhanden – slaweke

+0

Ich habe;) Vielen Dank – slaweke

+0

ja es ist 'BorderBrush'. Froh, es hat gut funktioniert :) –

0

Folgendes Beispiel zum Anpassen wpf datagrid (Rahmen, Zellenecken, etc.). Sie können es ändern, wie Sie es wünschen.

<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> 

Ich hoffe, es hilft für Sie.

Mit freundlichen Grüßen,

Thiyagu Rajendran

** Bitte beachten Sie die Antworten als Antworten markieren, wenn sie und unmark helfen, wenn sie es nicht tun.

Verwandte Themen