私はWinRTXamlToolkitを使用していますが、現在TreeViewコントロールを使用しようとしています。それはうまく動作しますが、マウスを上に置いたり選択するたびに、項目が強調表示されます。これはテキスト全体をカバーしています。フォアグラウンド/バックグラウンドの色を変更したり、選択色の背景を完全に削除するのが理想的です。どのように私が始めることができる任意のアイデア?WinRTXamlToolkit.Controls TreeView - マウスオーバーハイライトの削除
1
A
答えて
2
私たちは、これを達成するためにTreeViewItem
のTemplate
を編集することができます。 GitHubにはstyle and template of TreeViewItemがあります。
ツリービュー内の項目のマウスオーバー効果は "ホバー" という名前Rectangle
によって設定されます。
<Rectangle x:Name="Hover"
Fill="#FFBADDE9"
IsHitTestVisible="False"
Opacity="0"
RadiusX="2"
RadiusY="2"
Stroke="#FF6DBDD1"
StrokeThickness="1" />
そしてVisualState
VisualStateGroup
さんButton
に "プレスト":
<VisualState x:Name="Pressed">
<Storyboard>
<DoubleAnimation Duration="0"
Storyboard.TargetName="Hover"
Storyboard.TargetProperty="Opacity"
To=".5" />
</Storyboard>
</VisualState>
我々はできますDoubleAnimation.To
プロパティを設定して、Fill
プロパティと不透明度を設定して色を変更します。
選択効果は、マウスオーバー効果のようなもので、 "選択" という名前Rectangle
によって設定されます。
<VisualState x:Name="Selected">
<Storyboard>
<DoubleAnimation Duration="0"
Storyboard.TargetName="Selection"
Storyboard.TargetProperty="Opacity"
To=".75" />
</Storyboard>
</VisualState>
:
VisualState
TreeViewItem
さんの "SelectionStates"
VisualStateGroup
を "選択"
<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
のアニメーションを削除すると、選択効果が削除されます:
<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>
関連する問題
- 1. C#WinForms TreeView水平スクロールバーを削除
- 2. TreeViewからノードを削除します
- 3. TreeViewからSelectedItemを削除します
- 4. Treeviewオブジェクトの空の最初の列を削除します
- 5. c#winformsでtreeviewの空白を削除するには?
- 6. QListWidgetはマウスオーバーハイライトを無効にします
- 7. Gtk + Gtk :: Treeviewの最初の列の余白/余白を削除する
- 8. データベースから塗りつぶされたTreeViewのノードを削除します。
- 9. WPFツリービューの削除操作
- 10. TreeView Items changedイベント
- 11. $ cordovaFileTransferローカルファイルの削除/削除
- 12. クッキーの削除/削除
- 13. TreeView代替?
- 14. のTreeViewスクロールバーのバグ
- 15. WPF:ContextMenuからのTreeViewItemの削除
- 16. QWidgetの削除の問題
- 17. ファイルの削除と親ディレクトリの削除
- 18. ソフト削除VSハード削除
- 19. SQL削除ステートメントDidnt削除
- 20. BST削除/削除ノード - ルート
- 21. githubリポジトリの削除/削除とgithubページ
- 22. アクションバーの削除/非表示/削除
- 23. TextInputLayoutヒントタグの削除または削除
- 24. ルームデータベースの削除トリガーを削除する
- 25. asp.net treeviewのカットオフライン
- 26. WPF:ComboBox内のTreeView
- 27. カスタムスタイルのWPF TreeView
- 28. ASP.NET TreeViewのパフォーマンス
- 29. GridViewのTreeView
- 30. WPFのTreeViewコントロール