0

今日、私はwpfアプリケーションを作成する方法を自分自身に教え始めました(最終的に)

だから私はそれに慣れ始めていますが、リストビューのスタイリングに少し問題がありました。

この上の画像では、完全に機能していることがわかります (選択範囲の境界線はありません)。

ここに画像の説明を入力

ただし、2 番目の画像では、選択範囲の周りに小さな境界線が表示されています。これは、キーボードを使用してリスト内の次の項目に移動した場合にのみ発生するようです。

この境界線を取り除くことができるように、スタイルに欠けているものはありますか?

コード:(今日学習を始めたばかりなので、おそらく面倒です)

リストビュー スタイル

<Style TargetType="{x:Type ListView}">
    <Setter Property="BorderThickness" Value="0" />
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="BorderThickness" Value="0" />
        </Trigger>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="BorderThickness" Value="0" />
        </Trigger>
    </Style.Triggers>
</Style>

<Style TargetType="{x:Type ListViewItem}">
    <Setter Property="BorderThickness" Value="0" />
    <Setter Property="Foreground" Value="#4b0037" />

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ListViewItem}">
                <Border
                     BorderBrush="Transparent"
                     BorderThickness="0"
                     Background="{TemplateBinding Background}">
                    <GridViewRowPresenter HorizontalAlignment="Stretch" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="Auto" Margin="0" Content="{TemplateBinding Content}"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>

    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background">
                <Setter.Value>
                    <ImageBrush ImageSource="images/selection.png"/>
                </Setter.Value>
            </Setter>
            <Setter Property="BorderThickness" Value="0" />
        </Trigger>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background">
                <Setter.Value>
                    <ImageBrush ImageSource="images/selection.png"/>
                </Setter.Value>
            </Setter>
            <Setter Property="BorderThickness" Value="0" />
            <Setter Property="Foreground" Value="#FFFFFF" />
        </Trigger>
    </Style.Triggers>
</Style>

リストビュー XAML

            <ListView Background="transparent" Margin="10 10 10 10" x:Name="Mylist" HorizontalAlignment="Stretch" VerticalContentAlignment="center" VerticalAlignment="Stretch" BorderBrush="Transparent">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="img" Width="150" DisplayMemberBinding="{Binding img}" />
                    <GridViewColumn Header="name" Width="150" DisplayMemberBinding="{Binding name}" />
                    <GridViewColumn Header="path" Width="150" DisplayMemberBinding="{Binding path}" />
                </GridView>
            </ListView.View>
        </ListView>
4

2 に答える 2

0

<Setter Property="Control.Padding" Value="0" />ぜひあなたのスタイルでお試しくださいListViewItem

于 2013-07-31T13:39:54.470 に答える