0

いくつかの ListView コントロールを使用するアプリケーションを作成しています。私が使用している特定の配色があり、マウスが ListView コントロールに入ると、その周りに細い青い境界線が強調表示されることに気付きました。

これがどこで生成されているのかわかりません。Expression Blend を使用してコントロールを変更していますが、私が見つけた ListView コントロールのコンポーネントには、この青色の定義がありません。実際、ListView コントロール内には、コントロールの動作方法であるフォーカス ビジュアル スタイルのトリガーまたは状態はありません。

4

1 に答える 1

4

これを試して、トリックを実行する必要があります:

<ListView Background="Transparent" BorderThickness="0" />

ここでスタイリングソリューションが必要な場合は、次のとおりです。

<Style x:Key="{x:Type ListView}" TargetType="{x:Type ListView}">
  <Setter Property="SnapsToDevicePixels" Value="true"/>
  <Setter Property="OverridesDefaultStyle" Value="true"/>
  <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
  <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
  <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
  <Setter Property="VerticalContentAlignment" Value="Center"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type ListView}">
        <Border Name="Border"
          BorderThickness="1"
          BorderBrush="#888888"
          Background="#FFFFFF">
          <ScrollViewer Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}">
            <ItemsPresenter />
          </ScrollViewer>
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsGrouping"
                   Value="true">
            <Setter Property="ScrollViewer.CanContentScroll"
                    Value="false"/>
          </Trigger>
          <Trigger Property="IsEnabled"
                   Value="false">
            <Setter TargetName="Border"
                    Property="Background"
                    Value="#AAAAAA"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

<Style x:Key="{x:Type ListViewItem}" TargetType="{x:Type ListViewItem}">
  <Setter Property="SnapsToDevicePixels" Value="true"/>
  <Setter Property="OverridesDefaultStyle" Value="true"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type ListBoxItem}">
        <Border 
          Name="Border"
          Padding="2"
          SnapsToDevicePixels="true"
          Background="Transparent">
          <GridViewRowPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsSelected" Value="true">
            <Setter TargetName="Border" Property="Background" Value="#DDDDDD"/>
          </Trigger>
          <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Foreground" Value="#888888"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

スタイル内の境界線で遊んで、スタイル内ListViewのトリガーで遊んでください(境界線のサイズまたは色だけを変更できます。IsSelectedListViewItem

于 2012-09-09T16:31:51.050 に答える