2

ListView ヘッダーのスタイルを設定しようとしていますが、問題があります。列の両側に白い線があり、それらを削除する方法がわかりません。 問題を示す画像。

これは私のスタイルの XAML です。

   <Style x:Key="ColumnHeader" TargetType="{x:Type GridViewColumnHeader}">
        <Setter Property="HorizontalContentAlignment" Value="Left"/>
        <Setter Property="Height"  Value="45"  />
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF1B405D" Offset="1"/>
                    <GradientStop Color="#FF2F7CA8" Offset="0"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
        <Setter Property="Foreground" Value="White"/>
        <Setter Property="HorizontalContentAlignment" Value="Left"/>
        <Setter Property="BorderBrush" Value="Black"/>
        <Setter Property="Margin" Value="0,0,3,0"/>
    </Style>

そして、これは私のリストビューからのコードです:

<ListView Height="520" Margin="0,130,10,0" FontSize="28" 
          FontFamily="/WpfApplication2;component/Resources/#Purista SemiBold" 
          Background="{x:Null}" BorderBrush="{x:Null}" 
          SelectionChanged="ListView_SelectionChanged">
     <ListView.View>
          <GridView ColumnHeaderContainerStyle="{StaticResource ColumnHeader}" AllowsColumnReorder="False" >
               <GridViewColumn Header=" Name" Width="500"/>
               <GridViewColumn Header=" ID" Width="100"/>
               <GridViewColumn Header=" Mode" Width="150"/>
               <GridViewColumn Header=" Version" Width="150"/>
         </GridView>
    </ListView.View>
</ListView>

白い線を取り除くにはどうすればよいですか?太さを 0 に設定して境界線を削除しようとしましたが、白い線はまだここにあります。

4

2 に答える 2

0

問題の原因となっている領域は、ユーザーが列のサイズを変更できる「グリッパー」領域です。

列のサイズを変更できる必要がない場合は、GridViewColumnHeader のテンプレートをオーバーライドして列を削除できます。私が思いつくことができる最も単純なバージョンは次のとおりです。

    <LinearGradientBrush x:Key="HeaderGradientBrush" EndPoint="0.5,1" StartPoint="0.5,0">
        <GradientStop Color="#FF1B405D" Offset="1"/>
        <GradientStop Color="#FF2F7CA8" Offset="0"/>
    </LinearGradientBrush>

    <Style x:Key="ColumnHeader" TargetType="GridViewColumnHeader">
        <Setter Property="HorizontalContentAlignment" Value="Left" />
        <Setter Property="VerticalContentAlignment" Value="Center" />
        <Setter Property="Foreground" Value="White" />
        <Setter Property="Background" Value="{StaticResource HeaderGradientBrush}" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="GridViewColumnHeader">
                    <Grid>
                        <Border x:Name="HeaderBorder" Background="{StaticResource HeaderGradientBrush}">
                            <ContentPresenter x:Name="HeaderContent"
                          RecognizesAccessKey="True"
                          VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                          HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                          SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </Border>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
于 2014-05-22T16:16:32.780 に答える