【问题标题】:Silverlight: How to change TreeViewItem text color when it selectedSilverlight:选择时如何更改 TreeViewItem 文本颜色
【发布时间】:2009-11-17 10:33:59
【问题描述】:

我在 HierarchicalDataTemplate 中有 TextBlock。选择 TreeViewItem 时,我需要将前景色设置为红色。

<controls:TreeView  Background="#FF939597"
      ScrollViewer.HorizontalScrollBarVisibility="Disabled" x:Name="CommentTreeView" Margin="0,0,0,118"
            ItemContainerStyle="{StaticResource SectionsTreeViewItemStyle}">
                <controls:TreeView.ItemTemplate>
                    <control:HierarchicalDataTemplate ItemsSource="{Binding SubSections}" ItemContainerStyle="{StaticResource SectionsTreeViewItemStyle}">
                    <Grid>

                    <TextBlock x:Name="ItemTextBlock" Margin="0,6,48,0"
                               <!-- ??? Foreground="Red" ??? if item selected ??? -->
                                         FontSize="11"  Text="{Binding Path=Name}" 
                                         TextWrapping="Wrap" VerticalAlignment="Top">
                    </TextBlock>

                </Grid>

                </control:HierarchicalDataTemplate>
            </controls:TreeView.ItemTemplate>
        </controls:TreeView>

【问题讨论】:

    标签: silverlight treeview hierarchicaldatatemplate treeviewitem


    【解决方案1】:

    您可以通过使用 Silverlight 的 RelativeSource 的自定义实现来做到这一点:

    http://www.codeproject.com/Articles/36500/Implementing-RelativeSource-binding-in-Silverlight.aspx

    <UserControl.Resources>
        <Converters:BackgroundConverter x:Key="BackgroundConverter"/>
    </UserControl.Resources>
    
        <controls:TreeView Background="#FF939597"
              ScrollViewer.HorizontalScrollBarVisibility="Disabled" x:Name="CommentTreeView" Margin="0,0,0,118"
                    ItemContainerStyle="{StaticResource SectionsTreeViewItemStyle}">
                        <controls:TreeView.ItemTemplate>
                            <control:HierarchicalDataTemplate ItemsSource="{Binding SubSections}" ItemContainerStyle="{StaticResource SectionsTreeViewItemStyle}">
    
                                <Grid>
    
                                <TextBlock x:Name="ItemTextBlock" Margin="0,6,48,0"
                                                     FontSize="11"  Text="{Binding Path=Name}" 
                                                     TextWrapping="Wrap" VerticalAlignment="Top">
                                                                <local:BindingHelper.Binding>
                                        <local:BindingProperties TargetProperty="Foreground" SourceProperty="IsSelected"
                                                                 Converter="{StaticResource BackgroundConverter}"
                                                                 RelativeSourceAncestorType="TreeViewItem"/>
                                    </local:BindingHelper.Binding>
                                </TextBlock>
    
                            </Grid>
    
                            </control:HierarchicalDataTemplate>
                        </controls:TreeView.ItemTemplate>
                    </controls:TreeView>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-29
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多