/ / XAML GridViewの白い縞 - c#、wpf、gridview

XAML GridViewの白い縞 - c#、wpf、gridview

だから私は実際にここに2つの問題があります。 最初のものは私のGridViewにある白い縞です。私はそれを取り除く方法についてのアイデアはありません。次に、2番目の問題は、CollumnHeaderが実際に幅を伸ばしていないことです。

ここに画像があります:

ここに画像の説明を入力

そして、ここに私のコードです:

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

私は既にマージンを0に設定しようとしました。ほとんどのコンポーネントは自動で起動しますが、それは役に立たなかったのです。また、コンポーネントごとにForeColorを変更しても、どこから来たかわかりませんでした。 私はこれについていくつかの他のStackOverflowの質問を見てきましたが、彼らは私が理解しなかったか、彼らがどのように働いているかを知っていなかったか、または巨大なコードを持っていました。

誰も私にこれらの縞がどこから来ているか説明することができます。 そして、おそらくコードを提供して、あなたがそれをやる方法を見ることができます。

回答:

回答№1は0

これは私が使用を終了しました。私はMSDNから入手して、自分で少し編集しました

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

長方形の部分は、ストライプを作るものです。 さて、あなたがそれらの機能を維持したいならば、sthotakuraのコメントに行きますが、Fill to Transparentを設定します。この方法では、ストライプは消えますが、グリッパー/セパレーターは引き続き保持します。