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).
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>
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
After upgrading to Telerik WPF 2019.1.116 from 2018.3.1010 we receive a lot of:
System.ComponentModel.Win32Exception (0x80004005): Invalid window handle
MS.Win32.UnsafeNativeMethods.GetWindowText(HandleRef hWnd, StringBuilder lpString, Int32 nMaxCount)
Exceptions. It makes out application very slow.
In version 2018 everyting was OK. See attached scerenshots.
Got this weird behavior with RadDocking with multiple monitors. http://www.youtube.com/watch?v=8DDX5OiYRyM As you could see the pane is being opened on the wrong side. This happens only when the application is fully maximized, if its resized then this problem does not occur. I am not able to reproduce this with a simple example. But you could contact me I can help in investigation.
Is there any option to create a connection line as a blank rectangle. At present I can see only solid lines only. Please see the attached image, and suggest how to get top two connection types. Decline reason: The diagram exposes an API that allows you to create custom geometry for the connection. You can override the CreateGeometry(), CreateSourceCapGeometry() and CreateTargetCapGeometry() methods of RadDiagramConnection and create custom geometries. See the CustomConnectionCap SDK example: https://github.com/telerik/xaml-sdk/tree/master/Diagram/CustomConnectionCaps
The text in the Alt+Tab Manager is empty when there is a floating Pane in Windows XP
If a SplitContainer's InitialPosition is set to FloatingDockable and the the layout is saved in the Unloaded event of the control, that SplitContainer is not shown after layout load. The same could be observed if you float a Pane by dragging it out of its docked state.
When all of the RadDocument panes in the DocumentHost are closed the last one stays alive in .Net Framework 4.0. The issues can't be reproduced on machines with .Net Framework 4.5 installed
Panes that are autohidden are cut if resized too much - this is due to limitation in WPF that popups should not cover more than 75% of the screen.
RadPane setting CanFloat, CanUserPin & CanUserClose to false, ContextMenuTemplate="{x:Null}" and PaneHeaderVisibility="Collapsed" still leaves a small part of the header visible and clickable. If there is any work-around can you please let me know. Version 2014.3.1202.45, using Framework 4.5 with VS2013.
An access key can be added to ContentPresenter in WPF if you add underscore in the content and set RecognizeAccessKey to true.If the ContentPresenter is inside DocumentHost, the access key is working, but the underscore in the UI is not visible. If you remove the DocumentHost everything works as expected.