/ / XAML Białe paski w GridView - c #, wpf, gridview

XAML Białe paski w GridView - c #, wpf, gridview

Tak więc mam tutaj 2 problemy. Pierwszym z nich są białe paski, które są w moim GridView, którego nie mam pojęcia, jak się go pozbyć. Drugi problem polega na tym, że kolumna CollumnHeader naprawdę nie rozciąga się na szerokość.

Oto obraz:

wprowadź opis obrazu tutaj

A oto mój kod:

<UserControl x:Class="PROShine.TeamView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:PROShine"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<UserControl.Resources>
<Style x:Name="ListviewStyle" TargetType="ListView">
<Setter Property="Background" Value="#FF0d0d0d" />
<Setter Property="Foreground" Value="White" />
<Setter Property="BorderBrush" Value="#FF1e1e1e" />
<Setter Property="BorderThickness" Value="1,1,1,1" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
<Style x:Name="GridViewStyle" TargetType="GridViewColumnHeader">
<Setter Property="Background" Value="#FF111111" />
<Setter Property="Foreground" Value="White" />
<Setter Property="BorderBrush" Value="#FF1e1e1e" />
<Setter Property="BorderThickness" Value="1,0,1,0" />
<Setter Property="Margin" Value="0,0,0,0" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="BorderBrush" Value="#FF171717"/>
<Setter Property="Visibility" Value="Visible"/>
<Setter Property="Background"  Value="Transparent"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="BorderBrush" Value="#FF171717"/>
<Setter Property="BorderBrush" Value="#FF171717"/>
<Setter Property="Visibility" Value="Visible"/>
<Setter Property="Visibility" Value="Hidden"/>
<Setter Property="Margin" Value="1,1,0,0"/>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>

<Grid>
<ListView Name="PokemonsListView">
<ListView.View>
<GridView>
<GridViewColumn Header="Id" DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Level" DisplayMemberBinding="{Binding Experience.CurrentLevel}"/>
<GridViewColumn Header="Status" DisplayMemberBinding="{Binding Status}"/>
<GridViewColumn Header="HP" DisplayMemberBinding="{Binding Health}"/>
<GridViewColumn Header="Remaining Exp" DisplayMemberBinding="{Binding Experience.RemainingExperience}"/>
<GridViewColumn Header="Item" DisplayMemberBinding="{Binding ItemHeld}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>

Próbowałem już ustawić Margin na 0, The Width toauto na większości komponentów, ale to nie pomogło. Również zmiana ForeColor dla każdego komponentu nie pokazała mi, skąd pochodzą paski od ... Widziałem kilka innych pytań dotyczących StackOverflow, ale miały one albo ogromne kody, których nie rozumiałem, ani nie wiedziałem, jak działają.

Czy ktoś może mi wytłumaczyć, skąd pochodzą te paski? I może podać kod, żeby zobaczyć, jak byś to zrobił.

Odpowiedzi:

0 dla odpowiedzi № 1

To właśnie wykorzystałem. Dostałem go od MSDN i trochę się zmontowałem

    <Style x:Key="GridViewColumnHeaderGripper" TargetType="Thumb">
<Setter Property="Width" Value="18"/>
<Setter Property="Background" Value="{StaticResource SeperatorBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border Padding="{TemplateBinding Padding}" Background="Transparent">
<Rectangle HorizontalAlignment="Center" Width="1" Fill="{TemplateBinding Background}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

Część Rectangle tworzy paski. Teraz, jeśli chcesz zachować funkcjonalność tych, którzy nie przechodzą do komentarza sthotakury, ale ustaw Fill na Transparent, w ten sposób paski znikną, ale nadal będziesz trzymał chwytaki / seperatory.