[英]WinRTXamlToolkit.Controls TreeView - Remove Mouseover highlight
我們可以編輯TreeViewItem
的Template
來實現此目的。 我們可以在GitHub上找到TreeViewItem的樣式和模板 。
TreeView中該項目的鼠標懸停效果由名為“懸停”的Rectangle
設置:
<Rectangle x:Name="Hover"
Fill="#FFBADDE9"
IsHitTestVisible="False"
Opacity="0"
RadiusX="2"
RadiusY="2"
Stroke="#FF6DBDD1"
StrokeThickness="1" />
以及Button
的VisualState
中的“ Pressed” VisualStateGroup
:
<VisualState x:Name="Pressed">
<Storyboard>
<DoubleAnimation Duration="0"
Storyboard.TargetName="Hover"
Storyboard.TargetProperty="Opacity"
To=".5" />
</Storyboard>
</VisualState>
我們可以通過設置Fill
屬性更改其顏色,並通過設置DoubleAnimation.To
屬性更改不透明度。
選擇效果類似於鼠標懸停效果,並由名為“選擇”的Rectangle
設置:
<Rectangle x:Name="Selection"
Grid.Column="1"
IsHitTestVisible="False"
Opacity="0"
RadiusX="2"
RadiusY="2"
StrokeThickness="1">
<Rectangle.Fill>
<SolidColorBrush x:Name="SelectionFill" Color="#FFBADDE9" />
</Rectangle.Fill>
<Rectangle.Stroke>
<SolidColorBrush x:Name="SelectionStroke" Color="#FF6DBDD1" />
</Rectangle.Stroke>
</Rectangle>
而“選擇” VisualState
在TreeViewItem
的‘SelectionStates’ VisualStateGroup
:
<VisualState x:Name="Selected">
<Storyboard>
<DoubleAnimation Duration="0"
Storyboard.TargetName="Selection"
Storyboard.TargetProperty="Opacity"
To=".75" />
</Storyboard>
</VisualState>
我們可以通過刪除此VisualState
的動畫來刪除選擇效果,如下所示:
<VisualState x:Name="Selected">
<!--<Storyboard>
<DoubleAnimation Duration="0"
Storyboard.TargetName="Selection"
Storyboard.TargetProperty="Opacity"
To=".75" />
</Storyboard>-->
</VisualState>
因此,您可以根據需要編輯TreeViewItem
的樣式和模板,並為新Style
提供x:Key
類的
<Style x:Key="MyTreeViewItemStyle" TargetType="controls:TreeViewItem">
然后通過設置ItemContainerStyle
在TreeView
使用新樣式,如下所示:
<controls:TreeView x:Name="treeView" ItemContainerStyle="{StaticResource MyTreeViewItemStyle}">
<controls:TreeView.ItemTemplate>
<DataTemplate>
<data:DataTemplateExtensions.Hierarchy>
<data:HierarchicalDataTemplate ItemsSource="{Binding Children}" />
</data:DataTemplateExtensions.Hierarchy>
<TextBlock Text="{Binding Text}" TextTrimming="CharacterEllipsis" />
</DataTemplate>
</controls:TreeView.ItemTemplate>
</controls:TreeView>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.