Hi. Curently I faced with an issue that I cannot correctly hide tab if I have only one RadPane in the window.
What I am trying to to is the following: I wish to have PaneHeader if I have only one RadPane in the group and hide it and show tabs if more thatn one RadPane. Also I want to completely hide everything if this RadPane is inside ToolWindow. (Similar to Bottom template, but with differ that tabs are on top)
What I have currently:
It works when I undock it to ToolWIndow, but fails when I dock it again in the right/left parts of the docking control. Seems binding in the trigger simply does not work.
I am attaching my TopRadPane group Template. Please, point me what I am doing wrong:
<ControlTemplate x:Key="RadPaneGroupTopControlTemplate" TargetType="telerikDocking:RadPaneGroup">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<dock:RadGridResizer x:Name="DockResizer" Placement="Left" ShowsPreview="True" Visibility="Collapsed"/>
<Border
x:Name="HeaderTabs"
Grid.Column="1">
<Grid x:Name="ItemsContainer" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<ItemsPresenter x:Name="ItemsPresenterElement" Margin="0"/>
<telerik:RadButton x:Name="CloseButton"
Grid.Column="1"
Command="telerikDocking:RadDockingCommands.Close"
Style="{StaticResource RadButtonDocumentCloseStyle}"
Visibility="{Binding IsEnabled, RelativeSource={RelativeSource Self}, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</Grid>
<Border.Style>
<Style TargetType="Border">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=telerik:RadPaneGroup}, Path=IsInToolWindow}" Value="true" />
<Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=telerik:RadPaneGroup}, Path=IsSingleItem}" Value="true" />
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Collapsed" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
<dock:PaneHeader Grid.Column="1"
x:Name="HeaderElement"
SelectedPane="{TemplateBinding SelectedPane}"
Visibility="Collapsed">
<!-- <dock:PaneHeader.Style> -->
<!-- <Style TargetType="dock:PaneHeader" BasedOn="{StaticResource PaneHeaderStyle}"> -->
<!-- <Setter Property="Visibility" Value="Collapsed"/> -->
<!-- <Style.Triggers> -->
<!-- <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=telerik:RadPaneGroup}, Path=., Converter={StaticResource HeaderVisibilityConverter}}" Value="True"> -->
<!-- <Setter Property="Visibility" Value="Visible"/> -->
<!-- </DataTrigger> -->
<!-- </Style.Triggers> -->
<!-- </Style> -->
<!-- </dock:PaneHeader.Style> -->
</dock:PaneHeader>
<Border x:Name="BorderVisual"
Grid.Column="1"
Grid.Row="1"
Grid.RowSpan="1"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
Background="{TemplateBinding Background}"/>
<Border x:Name="AccentBorderVisual"
Grid.Column="1"
Grid.Row="1"
Grid.RowSpan="1"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(helpers:ThemeHelper.CheckedBrush)}"
Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedPane.IsActive, Converter={StaticResource BooleanToVisibilityConverter}}"/>
<Grid Grid.Row="1" Grid.Column="1">
<ContentPresenter x:Name="ContentElement"
Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsContentPreserved, Converter={StaticResource InvertedBooleanToVisibilityConverter}}"
ContentTemplate="{TemplateBinding SelectedContentTemplate}"
ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"
Margin="{TemplateBinding Padding}"/>
<Grid x:Name="ContentElementsPanel" Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsContentPreserved, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="SplitterPosition">
<Trigger.Value>
<Dock>Left</Dock>
</Trigger.Value>
<Setter TargetName="DockResizer" Property="Visibility" Value="Visible"/>
<Setter TargetName="DockResizer" Property="Grid.RowSpan" Value="3"/>
<Setter TargetName="DockResizer" Property="Placement" Value="Left"/>
<Setter TargetName="DockResizer" Property="MinWidth" Value="10"/>
</Trigger>
<Trigger Property="SplitterPosition">
<Trigger.Value>
<Dock>Top</Dock>
</Trigger.Value>
<Setter TargetName="DockResizer" Property="Visibility" Value="Visible"/>
<Setter TargetName="DockResizer" Property="Grid.ColumnSpan" Value="2"/>
<Setter TargetName="DockResizer" Property="Placement" Value="Top"/>
<Setter TargetName="DockResizer" Property="MinHeight" Value="10"/>
<Setter TargetName="DockResizer" Property="VerticalAlignment" Value="Top"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="ContentElement" Property="Opacity" Value="{telerik:Office2019Resource ResourceKey=DisabledOpacity}"/>
<Setter Property="Foreground" Value="{telerik1:Office2019Resource ResourceKey=DisabledForegroundBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
Hi Denis,
I am investigating this and will write to you later today with more information.