2016-05-11 4 views
1

私は単純なリストビューを持っています。リストビューのマウスを削除

<ListView x:Name="DatabasesLstVw" ItemsSource="{Binding Path=Issues}" 
        ItemContainerStyle="{StaticResource removeMouseOverStyle}" 
        AlternationCount="2" Grid.Row="1" Margin="20,10,20,0" 
        HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
        FontSize="12" FontWeight="Normal" 
        BorderThickness="0" Background="Transparent" 
        ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
      <ListView.Resources> 
       <Style TargetType="GridViewColumnHeader"> 
        <Setter Property="Visibility" Value="Collapsed" /> 
       </Style> 
      </ListView.Resources> 
      <ListView.View> 
       <GridView > 
        <GridViewColumn Header="Message"> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <TextBlock TextWrapping="Wrap" Text="{Binding Name}" /> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn> 
       </GridView> 
      </ListView.View> 
     </ListView> 

デフォルトのマウスを削除してスタイリングを選択しようとするスタイルを作成しました。

<Style x:Key="removeMouseOverStyle" TargetType="{x:Type ListViewItem}"> 
      <Style.Triggers> 

       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="Transparent"></Setter> 
        <Setter Property="BorderThickness" Value="0"/> 
        <Setter Property="Margin" Value="0,0,0,0"/> 
        <Setter Property="Padding" Value="0"/> 
        <Setter Property="FontSize" Value="12"/> 
       </Trigger> 
       <Trigger Property="ItemsControl.IsMouseOver" Value="true"> 
        <Setter Property="Background" Value="Transparent"/> 
        <Setter Property="BorderThickness" Value="0"/> 
        <Setter Property="Margin" Value="0"/> 
        <Setter Property="Padding" Value="0"/> 
        <Setter Property="FontSize" Value="12"/>  
        <Setter Property="FontWeight" Value="Normal"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 

私は、そのGIF画像を作成しようとせずに何をしているのかを投稿できません。基本的にはマウスで少しホッピング。まず、マージンを設定していると思って、パディングとフォントサイズを試しました。

このデフォルトのマウスとは何か、どうやって削除するのですか?

答えて

2

選択/マウスオーバーを実装する方法はさまざまです。例えば、多くの場合、すべての状態に対して別々のボーダーを表示することによって行われます。 ListViewItemのような単純なコントロールの場合は、ControlTemplateをオーバーライドして必要な処理を行う方がよいでしょう。このスタイルの項目で

<Style x:Key="removeMouseOverStyle" 
      TargetType="ListViewItem"> 
     <Setter Property="SnapsToDevicePixels" 
       Value="true" /> 
     <Setter Property="OverridesDefaultStyle" 
       Value="true" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="ListBoxItem"> 
        <Border Name="Border" 
          Padding="2" 
          SnapsToDevicePixels="true" 
          Background="Transparent"> 
         <GridViewRowPresenter VerticalAlignment="{TemplateBinding VerticalContentAlignment}" /> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
</Style> 

は選択やマウスオーバーで自分appearenceは変更されません:あなたはただのトリガーを削除し、デフォルトのコントロールテンプレートを使用することができます。また、基本ItemsControlコントロールを使用することもできます。デフォルトでは、マウスオーバーの動作は選択されていません。

+0

あなたの作品は今のところ魅力的です。あなたの作品がなぜ働いたのか不思議です。私はOverridesDefaultStyleではありませんでしたか?私はこのコードの3つの異なるバージョンを試してみましたが、あなたのお手伝いをしていただきありがとうございます。 – DaImTo

+1

それはOverridesDefaultStyleもなくても機能しません。 – Evk

関連する問題