Wie kann ich in WPF diese Weißen Felder entfernen?
Guten tag ich habe in meinem WPF Programm jetzt irgendwie solche weißen Felder:
Also das ganz links und das zwischen dem Header und denn Cells,wie kriege ich die Weg?
Mein Code:
<StackPanel Orientation="Vertical" Background="Red">
<DataGrid Height="438" x:Name="data" Width="801" >
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="#292F3B"/>
<Setter Property="Foreground" Value="LightBlue"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Height" Value="30"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="BorderThickness" Value="0,0,2,0" />
<Setter Property="BorderBrush" Value="#333333"/>
<Setter Property="Padding" Value="10 0 0 0"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#454F5D"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="{x:Type DataGrid}">
<Setter Property="Background" Value="#20262E"/>
</Style>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Background" Value="#292F3B"/>
<Setter Property="Foreground" Value="LightBlue"/>
<Setter Property="BorderThickness" Value="0,0,2,0" />
<Setter Property="BorderBrush" Value="#333333"/>
<Setter Property="Margin" Value="0 5 0 0"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#454F5D"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="user" Binding="{Binding user}" Width="*"/>
<DataGridTextColumn Header="User1" Binding="{Binding user1}" Width="*"/>
<DataGridTextColumn Header="User2" Binding="{Binding user2}" Width="*"/>
<DataGridTextColumn Header="User3" Binding="{Binding user3}" Width="*"/>
<DataGridTextColumn Header="User4" Binding="{Binding user4}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
</StackPanel>
1 Antwort
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Informatik, Windows Presentation Foundation
1) Du hast einen Style für die DataGridRowHeader vergessen. Entweder setzt du die Breite auf 0:
<DataGrid RowHeaderWidth="0" ...
oder du färbst sie ebenfalls um.
<Style TargetType="{x:Type DataGridRowHeader}">
<Setter Property="Background" Value="#20262E" />
</Style>
2) Die horizontalen weißen Linien entstehen durch die Lücken, die dein Margin je DataGridCell aufreißt.
<Setter Property="Margin" Value="0 5 0 0" />
Wenn dir da etwas spezielles vorschwebt, z.B. ein oberer Rand mit individueller Farbe, wäre es vermutlich einfacher, ein neues Template für die Zellen anzulegen.
<!-- as resource ... -->
<DataTemplate x:Key="MyCellTemplate">
<StackPanel>
<Border ... /> <!-- border top -->
<Border ...> <!-- cell border -->
<TextBlock Text="{Binding Path=DataContext.Property, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
</Border>
</StackPanel>
</DataTemplate>
Verwendung:
<DataGridTemplateColumn CellTemplate="{StaticResource MyCellTemplate}" />