Having Problems with unreadable Tabs in RadPaneGroup: TabsSqueeze.png
I think I found a Solution with OverflowMode and ScrollViewer:
<telerik:RadPaneGroup x:Name="DocumentGroup" ScrollViewer.HorizontalScrollBarVisibility="Auto" OverflowMode="Scroll">
Problem:
After Loading Layout the OverflowMode is not respected anymore.
I found this ticket in Silverlight, what discribes the Problem and is approved: Docking: I would like OverflowMode to work for all RadPaneGroup in xaml/codebehind and this be persisted through SaveLayout/LoadLayout
And i found this documentation, which say, using OverflowMode can lead to unexpected behaviors:
https://docs.telerik.com/devtools/wpf/controls/raddocking/general-information/not-supported-properties
so i report this as a feature instead of a bug.
Please sea atteched an example project: TabWrapProblem.zip
Usage: Save and than Load the Layout -> Scrolling of tabs break
Hello,
I've got an issue and feel like it link to RadComboBox control.
I've got an application which displays a RadDocking with multiple elements. Some of them are RadCombobBox and they get their value from a view model.
Sometimes, and quite ofen, I've got an exception : "NullReferenceException occured in PresentationCore.dl" without more information... I can't find the origin of this exception since theis was thrown by an external code.
The awkward thing is that, when I put some breakpoints, I don't have the exception. It seems like there is a temporisation problem.
Here is an exemple of my view model code for a RadComboBox component :
private IEnumerable<EnumMemberViewModel> _videoTypes;
public IEnumerable<EnumMemberViewModel> VideoTypes
{
get
{
if (_videoTypes == null)
{
_videoTypes = EnumDataSource.FromType<EVideoType>();
}
return _videoTypes;
}
}
private EnumMemberViewModel _currentVideoType;
public EnumMemberViewModel CurrentVideoType
{
get
{
return _currentVideoType;
}
set
{
if (_currentVideoType != value)
{
_currentVideoType = value;
OnPropertyChanged(() => CurrentVideoType);
AcquireVideo.InvalidateCanExecute();
}
}
}
And here my xaml code for my view (if it can help):
<UserControl x:Class="AltosIHM.SessionControlPaneRadDocking"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:local="clr-namespace:AltosIHM"
xmlns:resx="clr-namespace:AltosIHM.Properties"
xmlns:iMatlabWCF="clr-namespace:MatlabWCFInterface;assembly=MatlabWCFInterface"
xmlns:iMatlabTreatment="clr-namespace:MatlabTreatmentInterface;assembly=MatlabTreatmentInterface"
xmlns:maskedInput="clr-namespace:Telerik.Windows.Controls.MaskedInput;assembly=Telerik.Windows.Controls.Input"
mc:Ignorable="d"
MinHeight="300" d:DesignWidth="900">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="CommonStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
<telerik:InvertedBooleanConverter x:Key="InvertBooleanConverter"/>
<local:StringToDoubleConverter x:Key="StringToDoubleConverter"/>
<Style TargetType="StackPanel" x:Key="HeaderElements">
<Setter Property="Orientation" Value="Horizontal"/>
</Style>
<Style x:Key="TextHeader" TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="3 0"/>
</Style>
<Style x:Key="TextHeaderDocumentPane" TargetType="TextBlock" BasedOn="{StaticResource TextHeader}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerik:RadDocumentPane}}, Path=IsPinned}" Value="False">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="TextHeaderPane" TargetType="TextBlock" BasedOn="{StaticResource TextHeader}">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerik:RadPane}}, Path=IsPinned}" Value="False">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="HeaderImg" TargetType="Image">
<Setter Property="Width" Value="30"/>
</Style>
<Style TargetType="telerik:RadPane">
<Setter Property="CanUserClose" Value="False"/>
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
<Style.Triggers>
<Trigger Property="IsPinned" Value="False">
<Setter Property="RenderTransform">
<Setter.Value>
<TransformGroup>
<RotateTransform Angle="90"/>
</TransformGroup>
</Setter.Value>
</Setter>
<Setter Property="Margin" Value="0 0 3 0"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="telerik:RadDocumentPane">
<Setter Property="CanUserClose" Value="False"/>
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
<Style.Triggers>
<Trigger Property="IsPinned" Value="False">
<Setter Property="RenderTransform">
<Setter.Value>
<TransformGroup>
<RotateTransform Angle="90"/>
</TransformGroup>
</Setter.Value>
</Setter>
<Setter Property="Margin" Value="0 0 3 0"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="ParametersTitle" TargetType="TextBlock" BasedOn="{StaticResource CategoryTitle}">
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Margin" Value="10"/>
</Style>
<Style x:Key="SessionParametersValue" TargetType="{x:Type Control}" BasedOn="{StaticResource ParametersValues}">
<Setter Property="Width" Value="300"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
</Style>
<DataTemplate x:Key="TreatmentsTemplate" DataType="{x:Type iMatlabTreatment:ITreatment}">
<Button Style="{StaticResource TileButton}" IsEnabled="{Binding IsManageableByIHM}"
CommandParameter="{Binding}"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=local:SessionControlPaneRadDocking}, Path=DataContext.ActiveTreatment}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Image Source="{Binding IconPath}"/>
<Label Grid.Row="1" Content="{Binding MatlabTreatmentExternalName}"
FontWeight="Bold" HorizontalAlignment="Center"/>
</Grid>
</Button>
</DataTemplate>
<ItemsPanelTemplate x:Key="TreatmentItemPanel">
<WrapPanel x:Name="PropertiesWrapPanel" Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type telerik:RadPaneGroup}}, Path=ActualWidth}"/>
</ItemsPanelTemplate>
<DataTemplate x:Key="IntCameraProperty">
<StackPanel Margin="0 3">
<TextBlock Width="180" Text="{Binding Name}" Style="{StaticResource ParametersTitle}"/>
<telerik:RadNumericUpDown Value="{Binding IHMValue}" Style="{StaticResource SessionParametersValue}"
IsEnabled="{Binding Accessible}" HideTrailingZeros="True"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="IntBoundedCameraProperty">
<StackPanel Margin="0 3">
<TextBlock Width="180" Text="{Binding Name}" Style="{StaticResource ParametersTitle}"/>
<DockPanel>
<telerik:RadNumericUpDown Value="{Binding IHMValue}" Style="{StaticResource SessionParametersValue}"
IsEnabled="{Binding Accessible}" HideTrailingZeros="True"
Minimum="{Binding ConstraintValueInt[0]}" Maximum="{Binding ConstraintValueInt[1]}"/>
</DockPanel>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="DoubleCameraProperty">
<StackPanel Margin="0 3">
<TextBlock Width="180" Text="{Binding Name}" Style="{StaticResource ParametersTitle}"/>
<telerik:RadNumericUpDown Value="{Binding IHMValue, Converter={StaticResource StringToDoubleConverter}}" NumberDecimalDigits="16"
IsEnabled="{Binding Accessible}" Style="{StaticResource SessionParametersValue}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="DoubleBoundedCameraProperty">
<StackPanel Margin="0 3">
<TextBlock Width="180" Text="{Binding Name}" Style="{StaticResource ParametersTitle}"/>
<telerik:RadNumericUpDown Value="{Binding IHMValue, Converter={StaticResource StringToDoubleConverter}}"
IsEnabled="{Binding Accessible}" NumberDecimalDigits="16"
Minimum="{Binding ConstraintValueDouble[0]}"
Maximum="{Binding ConstraintValueDouble[1]}"
Style="{StaticResource SessionParametersValue}" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="StringCameraProperty">
<StackPanel Margin="0 3">
<TextBlock Text="{Binding Name}" Style="{StaticResource ParametersTitle}"/>
<TextBox Text="{Binding IHMValue}" Style="{StaticResource SessionParametersValue}" IsReadOnly="{Binding Accessible, Converter={StaticResource InvertBooleanConverter}}"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="EnumCameraProperty">
<StackPanel Margin="0 3">
<TextBlock Text="{Binding Name}" Style="{StaticResource ParametersTitle}"/>
<telerik:RadComboBox ItemsSource="{Binding ConstraintValueString}" SelectedValue="{Binding IHMValue}"
IsReadOnly="{Binding Accessible, Converter={StaticResource InvertBooleanConverter}}"
Width="300" HorizontalAlignment="Left"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="CameraPropertiesTemplate">
<ContentControl Content="{Binding}">
<ContentControl.Style>
<Style TargetType="ContentControl">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="{x:Static iMatlabWCF:ETypeCameraProperty.Int}"/>
<Condition Binding="{Binding IsConstraintValueExist}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="ContentTemplate" Value="{StaticResource IntCameraProperty}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="{x:Static iMatlabWCF:ETypeCameraProperty.Int}"/>
<Condition Binding="{Binding IsConstraintValueExist}" Value="True"/>
<Condition Binding="{Binding Constraint}" Value="bounded"/>
</MultiDataTrigger.Conditions>
<Setter Property="ContentTemplate" Value="{StaticResource IntBoundedCameraProperty}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="{x:Static iMatlabWCF:ETypeCameraProperty.Double}"/>
<Condition Binding="{Binding IsConstraintValueExist}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="ContentTemplate" Value="{StaticResource DoubleCameraProperty}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="{x:Static iMatlabWCF:ETypeCameraProperty.Double}"/>
<Condition Binding="{Binding IsConstraintValueExist}" Value="True"/>
<Condition Binding="{Binding Constraint}" Value="bounded"/>
</MultiDataTrigger.Conditions>
<Setter Property="ContentTemplate" Value="{StaticResource DoubleBoundedCameraProperty}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="{x:Static iMatlabWCF:ETypeCameraProperty.String}"/>
<Condition Binding="{Binding IsConstraintValueExist}" Value="False"/>
</MultiDataTrigger.Conditions>
<Setter Property="ContentTemplate" Value="{StaticResource StringCameraProperty}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Type}" Value="{x:Static iMatlabWCF:ETypeCameraProperty.String}"/>
<Condition Binding="{Binding IsConstraintValueExist}" Value="True"/>
<Condition Binding="{Binding Constraint}" Value="enum"/>
</MultiDataTrigger.Conditions>
<Setter Property="ContentTemplate" Value="{StaticResource EnumCameraProperty}"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</DataTemplate>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<DockPanel Background="LightGray">
<telerik:RadDocking Name="SessionMainPanel" PaneActivationMode="LastActivated" Background="LightGray"
ElementLoaded="SessionMainPanel_ElementLoaded">
<telerik:RadDocking.DocumentHost>
<telerik:RadSplitContainer>
<telerik:RadPaneGroup Background="AliceBlue" telerik:StyleManager.Theme="Fluent">
<telerik:RadDocumentPane Title="{x:Static resx:Resources.Treatments}" telerik:RadDocking.SerializationTag="TreatmentsPane"
CanUserClose="False" IsDragDisabled="True">
<telerik:RadDocumentPane.Header>
<StackPanel x:Name="TreamtentPanel" Style="{StaticResource HeaderElements}">
<TextBlock Text="{x:Static resx:Resources.Treatments}" Style="{StaticResource TextHeaderDocumentPane}"/>
<Image Source="/icons/matlab.png" Style="{StaticResource HeaderImg}"/>
</StackPanel>
</telerik:RadDocumentPane.Header>
<telerik:RadTileList ItemsSource="{Binding Treatments}" ItemTemplate="{StaticResource TreatmentsTemplate}"
HorizontalAlignment="Center" VerticalTilesAlignment="Center">
</telerik:RadTileList>
</telerik:RadDocumentPane>
</telerik:RadPaneGroup>
</telerik:RadSplitContainer>
</telerik:RadDocking.DocumentHost>
<telerik:RadSplitContainer InitialPosition="DockedLeft" telerik:StyleManager.Theme="Fluent">
<telerik:RadPaneGroup>
<telerik:RadPane Title="{x:Static resx:Resources.CameraParameters}" telerik:RadDocking.SerializationTag="CameraParamsPane"
IsPinned="False" CanUserClose="False">
<telerik:RadPane.Header>
<StackPanel x:Name="CameraParamsPanel" Style="{StaticResource HeaderElements}">
<TextBlock Text="{x:Static resx:Resources.CameraParameters}" Style="{StaticResource TextHeaderPane}"/>
<Image Source="/icons/camera.png" Style="{StaticResource HeaderImg}"/>
</StackPanel>
</telerik:RadPane.Header>
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" Width="Auto" Background="#f6fcff" >
<ScrollViewer.Resources>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding AllCameraProperties.Count}" Value="0">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Style TargetType="StackPanel">
<Style.Triggers>
<DataTrigger Binding="{Binding AllCameraProperties.Count}" Value="0">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ScrollViewer.Resources>
<Grid>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Top" FontSize="25"
Margin="0 25" Style="{StaticResource CategoryTitle}" Visibility="Collapsed"
Text="{x:Static resx:Resources.NoCameraProperty}"/>
<StackPanel>
<ListView HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch"
ItemsSource="{Binding AllCameraProperties}" Background="#eff9ff"
ItemTemplate="{StaticResource CameraPropertiesTemplate}"
ItemsPanel="{StaticResource TreatmentItemPanel}"/>
<WrapPanel HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0 0 70 0">
<telerik:RadButton Margin="10"
Command="{Binding WriteProperties}" Content="{x:Static resx:Resources.WriteParameters}"/>
<telerik:RadButton Margin="10"
Command="{Binding ResetProperties}" Content="{x:Static resx:Resources.ResetParameters}"/>
<telerik:RadButton Margin="10"
Command="{Binding SetProperties}" Content="{x:Static resx:Resources.SetParameters}"/>
</WrapPanel>
</StackPanel>
</Grid>
</ScrollViewer>
</telerik:RadPane>
<telerik:RadPane Title="{x:Static resx:Resources.AcquisitionParameters}" telerik:RadDocking.SerializationTag="AcquisitionParamsPane"
IsPinned="False" CanUserClose="False">
<telerik:RadPane.Header>
<StackPanel x:Name="AcquisitionParamsPanel" Style="{StaticResource HeaderElements}">
<TextBlock Text="{x:Static resx:Resources.AcquisitionParameters}" Style="{StaticResource TextHeaderPane}"/>
<Image Source="/icons/acquisitionParams.png" Style="{StaticResource HeaderImg}"/>
</StackPanel>
</telerik:RadPane.Header>
<ScrollViewer VerticalScrollBarVisibility="Visible">
<StackPanel Background="#f6fcff">
<telerik:RadExpander Header="{x:Static resx:Resources.Images}" Background="LightSteelBlue" IsExpanded="True">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden">
<Grid x:Name="ImagesParametersGrid" Background="#f6fcff">
<Grid.Resources>
<Style TargetType="StackPanel">
<Setter Property="Margin" Value="10 8"/>
</Style>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel>
<TextBlock Text="{x:Static resx:Resources.FrameTrigger}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadNumericUpDown Style="{StaticResource SessionParametersValue}"
Value="{Binding FramePerTriggerNumber}" HideTrailingZeros="True" Minimum="0"/>
</StackPanel>
<StackPanel Grid.Column="1">
<TextBlock Text="{x:Static resx:Resources.TriggerRepeat}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadNumericUpDown Style="{StaticResource SessionParametersValue}"
Value="{Binding TriggerRepeatNumber}" HideTrailingZeros="True" Minimum="0"/>
</StackPanel>
<StackPanel Grid.Column="2">
<TextBlock Text="{x:Static resx:Resources.TriggerFrameDelay}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadNumericUpDown Style="{StaticResource SessionParametersValue}"
Value="{Binding TriggerFrameDelayNumber}" HideTrailingZeros="True" Minimum="0"/>
</StackPanel>
<StackPanel Grid.Row="1">
<TextBlock Text="{x:Static resx:Resources.FrameGrabInterval}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadNumericUpDown Style="{StaticResource SessionParametersValue}"
Value="{Binding FrameGrabInterval}" HideTrailingZeros="True" Minimum="1"/>
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="1">
<TextBlock Text="{x:Static resx:Resources.TriggerType}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadComboBox ItemsSource="{Binding Types}" SelectedIndex="1" SelectedItem="{Binding CurrentType, Mode=TwoWay}" Width="300" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="2">
<TextBlock Text="{x:Static resx:Resources.FilePrefix}" Style="{StaticResource CategoryTitle}"/>
<TextBox Style="{StaticResource SessionParametersValue}" Text="{Binding FilePrefix}"/>
</StackPanel>
<Grid Grid.Row="2" Grid.ColumnSpan="3" Margin="10 8">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="{x:Static resx:Resources.ImagesDirectory}" Style="{StaticResource CategoryTitle}"/>
<TextBox IsReadOnly="True" Text="{Binding FolderName}" Style="{StaticResource SessionParametersValue}" Width="Auto" HorizontalAlignment="Stretch" Grid.Row="1"/>
<telerik:RadButton Margin="8" HorizontalAlignment="Right" Grid.Row="2"
Content="{x:Static resx:Resources.ChooseFolder}"
Command="{Binding ChooseFolder}"/>
</Grid>
<StackPanel Grid.Row="3">
<TextBlock Text="{x:Static resx:Resources.GenerateMean}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadToggleButton Style="{StaticResource RadToggleSwitch}" HorizontalAlignment="Left" Margin="20 0 0 0"
IsChecked="{Binding IsMeanGenerate}"/>
</StackPanel>
<StackPanel Grid.Row="3" Grid.Column="1">
<TextBlock Text="{x:Static resx:Resources.Format}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadComboBox ItemsSource="{Binding Formats}" SelectedIndex="0" SelectedItem="{Binding CurrentFormat, Mode=TwoWay}" Width="300" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Grid.Row="3" Grid.Column="2">
<TextBlock Text="{x:Static resx:Resources.BitDepth}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadToggleButton Style="{StaticResource RadToggleSwitch}" HorizontalAlignment="Left" Margin="20 0 0 0"
IsChecked="{Binding ApplyBitDepth}"/>
</StackPanel>
</Grid>
</ScrollViewer>
</telerik:RadExpander>
<telerik:RadExpander Header="{x:Static resx:Resources.Video}" Background="LightSteelBlue" IsExpanded="True">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden">
<Grid x:Name="VideoParametersGrid" Background="#f6fcff">
<Grid.Resources>
<Style TargetType="StackPanel">
<Setter Property="Margin" Value="10 5"/>
</Style>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid Grid.ColumnSpan="2" Margin="10 8">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Text="{x:Static resx:Resources.VideoDirectory}" Style="{StaticResource CategoryTitle}"/>
<TextBox IsReadOnly="True" Text="{Binding VideoFolderName}" Style="{StaticResource SessionParametersValue}" Width="Auto" HorizontalAlignment="Stretch" Grid.Row="1"/>
<telerik:RadButton Margin="8" HorizontalAlignment="Right" Grid.Row="2"
Content="{x:Static resx:Resources.ChooseFolder}"
Command="{Binding ChooseVideoFolder}"/>
</Grid>
<StackPanel Grid.Row="1">
<TextBlock Text="{x:Static resx:Resources.FileName}" Style="{StaticResource CategoryTitle}"/>
<TextBox Style="{StaticResource SessionParametersValue}" Text="{Binding VideoFileName}"/>
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="1">
<TextBlock Text="{x:Static resx:Resources.Format}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadComboBox ItemsSource="{Binding VideoTypes}" SelectedIndex="2" SelectedItem="{Binding CurrentVideoType, Mode=TwoWay}" Width="300" HorizontalAlignment="Left"/>
</StackPanel>
</Grid>
</ScrollViewer>
</telerik:RadExpander>
</StackPanel>
</ScrollViewer>
</telerik:RadPane>
<telerik:RadPane Title="{x:Static resx:Resources.TreatmentParameters}" telerik:RadDocking.SerializationTag="TreatmentParamsPane"
IsPinned="False" CanUserClose="False">
<telerik:RadPane.Header>
<StackPanel x:Name="TreatmentsParamsPanel" Style="{StaticResource HeaderElements}">
<TextBlock Text="{x:Static resx:Resources.TreatmentParameters}" Style="{StaticResource TextHeaderPane}"/>
<Image Source="/icons/settings.png" Style="{StaticResource HeaderImg}"/>
</StackPanel>
</telerik:RadPane.Header>
<StackPanel>
<TextBlock Text="{x:Static resx:Resources.DefaultColor}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadColorEditor SelectedColor="{Binding ColorTreatments, Mode=TwoWay}" ColorMode="RGB" />
</StackPanel>
</telerik:RadPane>
<telerik:RadPane Title="{x:Static resx:Resources.ViewerParameters}" telerik:RadDocking.SerializationTag="ViewerParamsPane"
IsPinned="False" CanUserClose="False">
<telerik:RadPane.Header>
<StackPanel x:Name="ViewerParamsPanel" Style="{StaticResource HeaderElements}">
<TextBlock Text="{x:Static resx:Resources.ViewerParameters}" Style="{StaticResource TextHeaderPane}"/>
<Image Source="/icons/viewerParams.png" Style="{StaticResource HeaderImg}"/>
</StackPanel>
</telerik:RadPane.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<StackPanel>
<TextBlock Text="{x:Static resx:Resources.ColorsSpace}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadComboBox ItemsSource="{Binding ColorsSpaces}" SelectedIndex="0" SelectedItem="{Binding CurrentColorsSpace, Mode=TwoWay}" Width="300" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Grid.Column="1">
<StackPanel.Style>
<Style TargetType="StackPanel">
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<DataTrigger Binding="{Binding CurrentColorsSpace.Value}" Value="{x:Static iMatlabWCF:EReturnedColorSpace.Bayer}">
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<TextBlock Text="{x:Static resx:Resources.ColorFilter}" Style="{StaticResource CategoryTitle}"/>
<telerik:RadComboBox ItemsSource="{Binding ColorFilter}" SelectedIndex="0" SelectedItem="{Binding CurrentColorFilter, Mode=TwoWay}" Width="300" HorizontalAlignment="Left"/>
</StackPanel>
<telerik:RadButton Grid.Row="1" Grid.Column="1" HorizontalAlignment="Right" Margin="20 10"
Command="{Binding UpdateColorsSapce}" Content="{x:Static resx:Resources.UpdateColorsSpace}"/>
</Grid>
</telerik:RadPane>
<telerik:RadPane Title="HiddenPane" IsPinned="False" telerik:RadDocking.SerializationTag="HiddenPane"
Visibility="Hidden" Width="40" Height="0" Margin="0"/>
</telerik:RadPaneGroup>
</telerik:RadSplitContainer>
</telerik:RadDocking>
</DockPanel>
<StackPanel x:Name="ButtonsPanel" Width="50" HorizontalAlignment="Left" VerticalAlignment="Bottom">
<telerik:RadToggleButton ToolTip="{x:Static resx:Resources.Viewer}" Margin="5 2"
IsChecked="{Binding Path=IsViewerDisplayed, Mode=OneWay}"
Command="{Binding Path=ShowOrCloseViewerCommand}">
<Image Source="/icons/viewer.png" Style="{StaticResource HeaderImg}"/>
</telerik:RadToggleButton>
<telerik:RadButton ToolTip="{x:Static resx:Resources.AcquireImages}" Command="{Binding AcquireImages}"
Margin="5 2" Padding="5" >
<Image Source="/icons/acquireImg.png" Style="{StaticResource HeaderImg}"/>
</telerik:RadButton>
<telerik:RadToggleButton ToolTip="{Binding AcquireVideoLabel}" Command="{Binding AcquireVideo}"
IsChecked="{Binding IsAcquiringVideo, Mode=OneWayToSource}" Margin="5 2">
<Image Source="/icons/acquireVideo.png" Style="{StaticResource HeaderImg}"/>
</telerik:RadToggleButton>
</StackPanel>
</Grid>
</UserControl>
Like RanTabControl
Need this for an application with lots of tabs wich would not fit in the top or bottom template.
Maybe it works with a customizable TabStripTemplate where i can implement e.g. a GridView or something
Like this with a scrollbar (used TabControl PRISM example for this)
The RadDocking control is not registering position changes of the docking window when RadDocking is in a WPF UserControl embedded in a WinForms ElementHost:
This appears to only apply to the main window; if you (at runtime) move one of the example panes into a separate window, the compass on that window displays in the correct position when you undock the other pane:
I've attached a stripped down solution that reproduces the issue (originally noticed using 2018R2 when rewriting legacy VB WinForms in C# WPF user controls as part of a tech refresh; attached demo is using 2020R2 .NET 4.5 binaries).