簡體   English   中英

WPF TreeView如何為treeViewItem的IsSelected觸發

[英]WPF TreeView How to make trigger for IsSelected of treeViewItem

以下代碼是treeview:

   <TreeView BorderThickness="1,1,1,1" BorderBrush="#ffcccccc"  HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  
              ItemTemplate="{StaticResource itemTypeTreeViewTemplate}"
              ItemsSource="{Binding ItemTypes}"
              ItemContainerStyle="{StaticResource treeViewItemStyle}"/>

而且我設置了itemTemplate來設置項目的綁定。 然后設置ItemContainerStyle更改IsSelected樣式:

  <Style x:Key="treeViewItemStyle" TargetType="TreeViewItem">
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Background" Value="LightBlue" />
            </Trigger>
        </Style.Triggers>
    </Style>

    <HierarchicalDataTemplate x:Key="itemTypeTreeViewTemplate" 
                              ItemsSource="{Binding Child}">
                <DockPanel Margin="0,5,0,5">
                    <Button VerticalAlignment="Center"
                        x:Name="btn1" Width="25"
                        Visibility="{Binding Path=IsMouseOver,RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource BooleanToVisibilityConverter }}"
                        Content="U" DockPanel.Dock="Right" cal:Message.Attach="[Event Click] = [Action EditItemType($dataContext)]" 
                        Style="{StaticResource ButtonStyle1}" />
                    <TextBlock Margin="0,2,0,2" VerticalAlignment="Center" Text="{Binding ItemTypeName}" Foreground="#FF2e8bcc" FontSize="10" FontFamily="微軟雅黑" />
                </DockPanel>    
    </HierarchicalDataTemplate>

但是isSelected樣式不起作用。 有人找到鑰匙了嗎?

代替使用樣式觸發器,您應該覆蓋突出顯示狀態的顏色鍵。 這是代碼:

<Style x:Key="treeViewItemStyle" TargetType="TreeViewItem">
    <!--<Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="Background" Value="LightBlue" />
        </Trigger>
    </Style.Triggers>--><!--Remove Style.Trigger block-->
    <Style.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                   Color="LightBlue"/>
        </Style.Resources>
</Style>

希望這可以幫助。 此控件的其他鍵是:

  • HighlightBrushKey背景。 (選中時聚焦)
  • HighlightTextBrushKey前景。
  • InactiveSelectionHighlightBrushKey普通背景。
  • InactiveSelectionHighlightTextBrushKey普通前景。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM