在使用radpane时,如何使radtreeview中的选定项目应用(或)样式以突出显示radtreeview所选项目?

时间:2014-03-28 06:23:04

标签: c# .net wpf telerik rad-controls

代码:

<UserControl.Resources>
        <ResourceDictionary>
        <ControlTemplate x:Key="RadTreeViewItemControlTemplate1" TargetType="{x:Type telerik:RadTreeViewItem}">
                <Grid x:Name="RootElement">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <Grid x:Name="HeaderRow" Background="Transparent" MinHeight="{TemplateBinding MinHeight}" SnapsToDevicePixels="True">
            <Border x:Name="SelectionUnfocusedVisual" BorderBrush="#FFDBDBDB" BorderThickness="1" Grid.ColumnSpan="6" Grid.Column="2" CornerRadius="1" Visibility="Collapsed">
                            <Border BorderBrush="Transparent" BorderThickness="1" CornerRadius="0">
                                <Border.Background>
                                    <LinearGradientBrush EndPoint="0,1">
                                        <GradientStop Color="#FFF8F6F9" Offset="0"/>
                                        <GradientStop Color="#FFF0F0F0" Offset="1"/>
                                    </LinearGradientBrush>
                                </Border.Background>
                            </Border>
                        </Border>
              </Grid>
          </Grid>
          <ControlTemplate.Triggers>    
            <MultiTrigger>
                            <MultiTrigger.Conditions>
                                    <Condition Property="IsSelected" Value="True"/>
                                    <Condition Property="IsSelectionActive" Value="False"/>
                            </MultiTrigger.Conditions>
                            <Setter Property="Visibility" TargetName="SelectionUnfocusedVisual" Value="Visible"/>
                        </MultiTrigger>
        </ControlTemplate.Triggers>
            </ControlTemplate>
        </ResourceDictionary>
    </UserControl.Resources>


<DockPanel>
        <telerik:RadDocking x:Name="radDocking" Width="245" ConstraintAutoHideArea="False">
            <telerik:RadSplitContainer x:Name="radSplitContainer">
                <telerik:RadPaneGroup x:Name="radGroup">
                    <telerik:RadPane x:Name="radPane1" Header="Test" ContextMenuTemplate="{x:Null}" CanUserClose="False" CanFloat="False" Cursor="Hand">
            <Grid>
                            <DockPanel LastChildFill="True">
                <telerik:RadTreeView x:Name="radTreeView" DockPanel.Dock="Left" Background="#FF525152" VirtualizingPanel.IsVirtualizing="True">
                                    <telerik:RadTreeView.Resources>
                                        <Style TargetType="{x:Type telerik:RadTreeViewItem}">
                        <Setter Property="Template" Value="{StaticResource RadTreeViewItemControlTemplate1}" />
                    </Style>
                                    </telerik:RadTreeView.Resources>
                                </telerik:RadTreeView>
                 </DockPanel>
                        </Grid>
                    </telerik:RadPane>
                </telerik:RadPaneGroup>
            </telerik:RadSplitContainer>
        </telerik:RadDocking>   
</DockPanel>

使用Radpane后,所选项目未应用样式。 如果单独使用RadTreeView(没有radpane),则radtreeview中的所选项目具有正常工作的样式SelectionUnfocusedVisual(即),所选项目突出显示。如何在radtreeview中使所选项目应用(或)样式以在使用radpane时突出显示radtreeview所选项目?谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我们需要在选择RadDocking

后更新radtreeviewitem布局

解决方案:

this.radDocking.UpdateLayout();