This is a migrated thread and some comments may be shown as answers.

Delete button

8 Answers 222 Views
ScheduleView
This is a migrated thread and some comments may be shown as answers.
Christie Admin
Top achievements
Rank 1
Christie Admin asked on 06 Feb 2014, 09:37 PM
Hi,

I would like to know how I can hide the delete (X) button in each appointment spot?

Thank's
Alain

8 Answers, 1 is accepted

Sort by
0
Kalin
Telerik team
answered on 10 Feb 2014, 09:08 AM
Hello Alain,

Please check the following How to article from our online help documentations:
http://www.telerik.com/help/wpf/radscheduleview-howto-remove-delete-button.html

Hope this helps.

Regards,
Kalin
Telerik

Check out the new Telerik Platform - the only modular platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native apps. Register for the free online keynote and webinar to learn more about the Platform on Wednesday, February 12, 2014 at 11:00 a.m. ET (8:00 a.m. PT).

0
Christie Admin
Top achievements
Rank 1
answered on 10 Feb 2014, 08:24 PM
Hi Kalin,

I downloaded the sample project from the repository but it don't work with the Office2013 theme. With the Office_Black, it work :(

Thank's
Alain
0
Kalin
Telerik team
answered on 11 Feb 2014, 01:11 PM
Hi Alain,

Yes, the example is for OfficeBlack theme. You will need to extract and use the default AppointmentItemHorizontal and AppointmentItemVertical templates from the Office 2013 theme and remove button.

Give it a try and let me know if you have any issues.

Regards,
Kalin
Telerik

Check out the new Telerik Platform - the only modular platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native apps. Register for the free online keynote and webinar to learn more about the Platform on Wednesday, February 12, 2014 at 11:00 a.m. ET (8:00 a.m. PT).

0
Christie Admin
Top achievements
Rank 1
answered on 11 Feb 2014, 04:20 PM
Hi Kalin,

perfect, it work :)

Thank's
Alain
0
Christie Admin
Top achievements
Rank 1
answered on 11 Feb 2014, 08:17 PM
Hi Kalin,

finally it don't work :(

It's not an application but a DLL where my UserControl is...

So when I run my application who refer to my dll, the application hang and I finally get thje following error message:

Locating source for 'c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\AppointmentsPanel.cs'. Checksum: MD5 {b3 27 93 c9 f6 6f c7 c3 17 4c 14 51 5c 2e 11 ed}
The file 'c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\AppointmentsPanel.cs' does not exist.
Looking in script documents for 'c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\AppointmentsPanel.cs'...
Looking in the projects for 'c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\AppointmentsPanel.cs'.
The file was not found in a project.
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\'...
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\vccorlib\'...
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\src\mfc\'...
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\src\atl\'...
Looking in directory 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include'...
The debug source files settings for the active solution indicate that the debugger will not ask the user to find the file: c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\AppointmentsPanel.cs.
The debugger could not locate the source file 'c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\AppointmentsPanel.cs'.

Here is my usercontrol:

<UserControl x:Class="AppointmentControls.CreateSchedule.CreateSchedule"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"                          
             xmlns:ScheduleCreation="clr-namespace:AppointmentControls.CreateSchedule"
             xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
             xmlns:telerikScheduleView="http://schemas.telerik.com/2008/xaml/presentation"
             xmlns:dragDrop="clr-namespace:Telerik.Windows.DragDrop;assembly=Telerik.Windows.Controls"
             xmlns:scheduleView="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.ScheduleView"
             xmlns:local="clr-namespace:AppointmentControls"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300" x:Name="Me">

    <UserControl.Resources>      
        <ResourceDictionary>
            <local:DictionaryToMultiLinesConverter x:Key="MultiLinesConverter" />

            <local:GroupHeaderStyleSelector x:Key="CustomGroupHeaderStyleSelector">
                <local:GroupHeaderStyleSelector.WeekViewStyle>
                    <Style TargetType="telerik:GroupHeader" BasedOn="{StaticResource GroupHeaderBaseStyle}">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="telerik:GroupHeader">
                                    <Grid>
                                        <VisualStateManager.VisualStateGroups>
                                            <VisualStateGroup x:Name="OrientationStates">
                                                <VisualState x:Name="Horizontal">
                                                    <Storyboard>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Header" Storyboard.TargetProperty="VerticalAlignment">
                                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                                <DiscreteObjectKeyFrame.Value>
                                                                    <VerticalAlignment>Stretch</VerticalAlignment>
                                                                </DiscreteObjectKeyFrame.Value>
                                                            </DiscreteObjectKeyFrame>
                                                        </ObjectAnimationUsingKeyFrames>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Header" Storyboard.TargetProperty="HorizontalAlignment">
                                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                                <DiscreteObjectKeyFrame.Value>
                                                                    <HorizontalAlignment>Left</HorizontalAlignment>
                                                                </DiscreteObjectKeyFrame.Value>
                                                            </DiscreteObjectKeyFrame>
                                                        </ObjectAnimationUsingKeyFrames>
                                                    </Storyboard>
                                                </VisualState>
                                                <VisualState x:Name="Vertical"/>
                                            </VisualStateGroup>
                                            <VisualStateGroup x:Name="DayStates">
                                                <VisualState x:Name="NormalDay"/>
                                                <VisualState x:Name="NormalDayHorizontal">
                                                    <Storyboard>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Header" Storyboard.TargetProperty="VerticalAlignment">
                                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                                <DiscreteObjectKeyFrame.Value>
                                                                    <VerticalAlignment>Stretch</VerticalAlignment>
                                                                </DiscreteObjectKeyFrame.Value>
                                                            </DiscreteObjectKeyFrame>
                                                        </ObjectAnimationUsingKeyFrames>
                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Header" Storyboard.TargetProperty="HorizontalAlignment">
                                                            <DiscreteObjectKeyFrame KeyTime="0">
                                                                <DiscreteObjectKeyFrame.Value>
                                                                    <HorizontalAlignment>Left</HorizontalAlignment>
                                                                </DiscreteObjectKeyFrame.Value>
                                                            </DiscreteObjectKeyFrame>
                                                        </ObjectAnimationUsingKeyFrames>
                                                    </Storyboard>
                                                </VisualState>
                                                <!--<VisualState x:Name="Today">
                                                <Storyboard>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Border" Storyboard.TargetProperty="BorderThickness">
                                                        <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{StaticResource HorizontalGroupHeaderTodayBorderThickness}"/>
                                                    </ObjectAnimationUsingKeyFrames>
                                                </Storyboard>
                                            </VisualState>
                                            <VisualState x:Name="TodayHorizontal">
                                                <Storyboard>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Header" Storyboard.TargetProperty="VerticalAlignment">
                                                        <DiscreteObjectKeyFrame KeyTime="0">
                                                            <DiscreteObjectKeyFrame.Value>
                                                                <VerticalAlignment>Stretch</VerticalAlignment>
                                                            </DiscreteObjectKeyFrame.Value>
                                                        </DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Header" Storyboard.TargetProperty="HorizontalAlignment">
                                                        <DiscreteObjectKeyFrame KeyTime="0">
                                                            <DiscreteObjectKeyFrame.Value>
                                                                <HorizontalAlignment>Left</HorizontalAlignment>
                                                            </DiscreteObjectKeyFrame.Value>
                                                        </DiscreteObjectKeyFrame>
                                                    </ObjectAnimationUsingKeyFrames>
                                                </Storyboard>
                                            </VisualState>-->
                                            </VisualStateGroup>
                                        </VisualStateManager.VisualStateGroups>
                                        <Border x:Name="Border"
                    IsHitTestVisible="False"
                    HorizontalAlignment="Stretch"
                    VerticalAlignment="Stretch"
                    BorderBrush="{TemplateBinding BorderBrush}"
                    Background="{TemplateBinding Background}"
                    BorderThickness="{TemplateBinding BorderThickness}"/>
                                        <telerik:GroupHeaderButton x:Name="Header"
                    VerticalAlignment="Top"
                    Content="{TemplateBinding Content}"
                    ContentTemplate="{TemplateBinding ContentTemplate}"
                    Command="{TemplateBinding Command}"
                    CommandParameter="{TemplateBinding CommandParameter}"
                    IsToday="false"
                    Orientation="{TemplateBinding Orientation}"
                    Foreground="{TemplateBinding Foreground}"
                    ContentStringFormat="{TemplateBinding ContentStringFormat}"
                    ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"/>
                                    </Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </local:GroupHeaderStyleSelector.WeekViewStyle>
            </local:GroupHeaderStyleSelector>            
            
            <DataTemplate x:Key="AppointmentTemplate">
                <Grid Margin="-2 0 -1 0">
                       <StackPanel Orientation="Vertical">
                        <TextBlock Margin="0 2 0 0" Text="{Binding Appointment.Lines, Converter={StaticResource MultiLinesConverter}}"  HorizontalAlignment="Left" VerticalAlignment="Center" FontSize="12" FontFamily="Segoe UI Semibold"/>
                    </StackPanel>
                </Grid>
            </DataTemplate>

            <ControlTemplate x:Key="AppointmentItemVerticalControlTemplate" TargetType="telerikScheduleView:AppointmentItem">
                <Grid x:Name="Root">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Disabled"/>
                            <VisualState x:Name="Normal">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0:0:0.200" Storyboard.TargetName="MouseOverGrid" Storyboard.TargetProperty="Visibility">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0.200">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Collapsed</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <DoubleAnimation BeginTime="0:0:0.0" Duration="0:0:0.200" To="0" Storyboard.TargetName="MouseOverGrid" Storyboard.TargetProperty="Opacity"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="MouseOver">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0:0:0.400" Storyboard.TargetName="MouseOverGrid" Storyboard.TargetProperty="Visibility">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0.0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <DoubleAnimation BeginTime="0:0:0.200" Duration="0:0:0.200" To="1" Storyboard.TargetName="MouseOverGrid" Storyboard.TargetProperty="Opacity"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="ReadOnly">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0:0:0.0" Storyboard.TargetName="ReadOnlyVisual" Storyboard.TargetProperty="Visibility">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0.0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="InlineEditing"/>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="SelectionStates">
                            <VisualState x:Name="Unselected"/>
                            <VisualState x:Name="Selected">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0:0:0" Storyboard.TargetName="SelectionVisual" Storyboard.TargetProperty="Visibility">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <Grid Margin="0 1">
                        <Border x:Name="LineVisual"
                        Margin="{TemplateBinding DurationMarkerMargin}"
                        Background="{telerik:Office2013Resource ResourceKey=MainBrush}"
                        BorderBrush="{telerik:Office2013Resource ResourceKey=AccentMainBrush}"
                        BorderThickness="1"
                        Width="7"/>
                        <Border BorderBrush="{Binding Path=Category.CategoryBrush}" Width="7" BorderThickness="1"/>
                        <Border BorderBrush="{telerik:Office2013Resource ResourceKey=EffectAccentHighBrush}" Width="7" BorderThickness="1"/>
                        <Border x:Name="PART_TimeMarker"
                        Margin="{TemplateBinding DurationMarkerMargin}"
                        Background="{Binding Path=TimeMarker.TimeMarkerBrush}"
                        BorderBrush="Transparent"
                        BorderThickness="0 1"
                        Visibility="{Binding Path=TimeMarker, Converter={StaticResource NullToVisibilityConverter}}"
                        Width="7"/>
                    </Grid>
                    <Grid Grid.Column="1" Margin="0 1">
                        <Grid.InputBindings>
                            <MouseBinding MouseAction="LeftDoubleClick" Command="telerikScheduleView:RadScheduleViewCommands.EditAppointment"/>
                        </Grid.InputBindings>
                        <Border x:Name="BackgroundBorder" Background="{TemplateBinding Background}"/>
                        <Border x:Name="SelectionVisual" Visibility="Collapsed" Background="{telerik:Office2013Resource ResourceKey=EffectLowBrush}"/>
                        <Border x:Name="PART_Category" Background="{Binding Path=Category.CategoryBrush}"/>
                        <Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0 1 1 1"/>
                        <Rectangle x:Name="ReadOnlyVisual" Visibility="Collapsed" Fill="{telerik:Office2013Resource ResourceKey=MediumDarkBrush}"/>
                        <Grid Margin="-1 0 0 0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="*"/>
                                <RowDefinition Height="Auto"/>
                            </Grid.RowDefinitions>
                            <Path
                            Grid.ColumnSpan="2"
                            Grid.Row="0"
                            Data="M3.5,0 L7,4 L0,4 z"
                            Fill="{telerik:Office2013Resource ResourceKey=MainBrush}"
                            Margin="2 4 2 2"
                            Height="4"
                            Width="7"
                            VerticalAlignment="Top"
                            Stretch="Fill"
                            HorizontalAlignment="Center"
                            Visibility="{TemplateBinding StartIndicatorVisibility}"/>
                            <StackPanel Grid.Column="0" Grid.Row="1" VerticalAlignment="Top" Margin="2 2 0 0" Orientation="Horizontal">
                                <Image x:Name="RecurrenceMark"
                                Margin="2 2 1 1"
                                Width="10"
                                Height="10"
                                Visibility="{Binding Path=RecurrenceState, Converter={StaticResource RecurrenceStateIsExeptionToVisibilityConverter}}"
                                HorizontalAlignment="Left"
                                Source="{StaticResource AppointmentItem_Recurrence}"/>
                                <Image x:Name="ExceptionMark"
                                Margin="2 2 1 1"
                                Width="10"
                                Height="10"
                                Visibility="{Binding Path=RecurrenceState, Converter={StaticResource RecurrenceStateIsOccurenceToVisibilityConverter}}"
                                HorizontalAlignment="Left"
                                Source="{StaticResource AppointmentItem_Exception}"/>
                                <ContentControl x:Name="HighImportanceMark"
                                Template="{StaticResource HighImportanceMarkTemplate}"
                                Margin="2 1 1 0"
                                Style="{StaticResource ImportanceMarkContentControlStyle}"
                                Visibility="{Binding Importance, Converter={StaticResource EnumToVisibilityConverter}, ConverterParameter=High}"/>
                                <ContentControl x:Name="LowImportanceMark"
                                Template="{StaticResource LowImportanceMarkTemplate}"
                                Margin="2 1 1 0"
                                Style="{StaticResource ImportanceMarkContentControlStyle}"
                                Visibility="{Binding Importance, Converter={StaticResource EnumToVisibilityConverter}, ConverterParameter=Low}"/>
                            </StackPanel>
                            <ContentPresenter
                            Grid.Column="1"
                            Grid.Row="1"
                            Margin="{TemplateBinding Padding}"
                            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                            VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                            <Path
                            Grid.ColumnSpan="2"
                            Grid.Row="2"
                            Data="M7,0 L3.5,4 L0,0 z"
                            Height="4"
                            Width="7"
                            Stretch="Fill"
                            Fill="{telerik:Office2013Resource ResourceKey=MainBrush}"
                            Margin="2 2 2 4"
                            VerticalAlignment="Bottom"
                            HorizontalAlignment="Center"
                            Visibility="{TemplateBinding EndIndicatorVisibility}"/>
                        </Grid>
                        <Grid x:Name="MouseOverGrid" Visibility="Collapsed" Opacity="0">
                            <Border x:Name="MouseOverVisual" IsHitTestVisible="False" Background="{telerik:Office2013Resource ResourceKey=EffectHighBrush}" BorderBrush="{x:Null}"/>
                            <Border x:Name="PART_StartResizeGrip"
                            Background="Transparent"
                            HorizontalAlignment="Stretch"
                            VerticalAlignment="Top"
                            Cursor="SizeNS"
                            dragDrop:DragDropManager.AllowDrag="True"
                            Height="6"
                            Visibility="{Binding IsAllDay, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InvertedBooleanToVisibilityConverter}}"
                            dragDrop:DragDropManager.TouchDragTrigger="TapAndHold"/>
                            <Border x:Name="PART_EndResizeGrip"
                            Background="Transparent"
                            HorizontalAlignment="Stretch"
                            VerticalAlignment="Bottom"
                            Cursor="SizeNS"
                            dragDrop:DragDropManager.AllowDrag="True"
                            Height="6"
                            Visibility="{Binding IsAllDay, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InvertedBooleanToVisibilityConverter}}"
                            dragDrop:DragDropManager.TouchDragTrigger="TapAndHold"/>
                            <!--<telerik:RadButton x:Name="DeleteButton"
                            Style="{StaticResource DeleteButtonStyle}"
                            Command="{x:Static telerikScheduleView:RadScheduleViewCommands.DeleteAppointment}"
                            ClickMode="Press"
                            CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                            Visibility="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled, Converter={StaticResource BooleanToVisibilityConverter}}"
                            IsTabStop="False"/>-->
                        </Grid>
                    </Grid>
                </Grid>
            </ControlTemplate>

            <ControlTemplate x:Key="AppointmentItemHorizontalControlTemplate" TargetType="telerikScheduleView:AppointmentItem">
                <Grid x:Name="Root">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Disabled"/>
                            <VisualState x:Name="Normal">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0:0:0.200" Storyboard.TargetName="MouseOverGrid" Storyboard.TargetProperty="Visibility">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0.200">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Collapsed</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <DoubleAnimation BeginTime="0:0:0.0" Duration="0:0:0.200" To="0" Storyboard.TargetName="MouseOverGrid" Storyboard.TargetProperty="Opacity"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="MouseOver">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0:0:0.400" Storyboard.TargetName="MouseOverGrid" Storyboard.TargetProperty="Visibility">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0.0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <DoubleAnimation BeginTime="0:0:0.200" Duration="0:0:0.200" To="1" Storyboard.TargetName="MouseOverGrid" Storyboard.TargetProperty="Opacity"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="ReadOnly">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0:0:0.0" Storyboard.TargetName="ReadOnlyVisual" Storyboard.TargetProperty="Visibility">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0.0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="InlineEditing"/>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="SelectionStates">
                            <VisualState x:Name="Unselected"/>
                            <VisualState x:Name="Selected">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Duration="0:0:0.200" Storyboard.TargetName="SelectionVisual" Storyboard.TargetProperty="Visibility">
                                        <DiscreteObjectKeyFrame KeyTime="0:0:0.200">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid Grid.Row="1" Margin="3 0 3 0">
                        <Border x:Name="LineVisual"
                        Margin="{TemplateBinding DurationMarkerMargin}"
                        Background="{telerik:Office2013Resource ResourceKey=MainBrush}"
                        BorderThickness="1"
                        BorderBrush="{telerik:Office2013Resource ResourceKey=AccentMainBrush}"
                        Height="5"/>
                        <Border x:Name="PART_TimeMarker"
                        Margin="{TemplateBinding DurationMarkerMargin}"
                        Background="{Binding Path=TimeMarker.TimeMarkerBrush}"
                        Visibility="{Binding Path=TimeMarker, Converter={StaticResource NullToVisibilityConverter}}"
                        Height="5"/>
                        <Border x:Name="Category_LineVisual" BorderBrush="{Binding Path=Category.CategoryBrush}" Height="5" BorderThickness="1"/>
                        <Border x:Name="Category_LineVisualEffect" BorderBrush="{telerik:Office2013Resource ResourceKey=EffectAccentHighBrush}" Height="5" BorderThickness="1"/>
                    </Grid>
                    <Grid Grid.Row="0" Margin="3 1 3 0">
                        <Grid.InputBindings>
                            <MouseBinding MouseAction="LeftDoubleClick" Command="telerikScheduleView:RadScheduleViewCommands.EditAppointment"/>
                        </Grid.InputBindings>
                        <Border x:Name="BackgroundBorder" Background="{TemplateBinding Background}"/>
                        <Border x:Name="SelectionVisual" Visibility="Collapsed" Background="{telerik:Office2013Resource ResourceKey=EffectLowBrush}"/>
                        <Border x:Name="PART_Category" Background="{Binding Path=Category.CategoryBrush}"/>
                        <Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1 1 1 0"/>
                        <Rectangle x:Name="ReadOnlyVisual" Visibility="Collapsed" Fill="{telerik:Office2013Resource ResourceKey=MediumDarkBrush}"/>
                        <Grid Margin="-1 0 0 0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Path
                            Grid.Column="0"
                            Data="M-919.69031,2003.9496 L-919.69031,2010.7375 L-923.7619,2007.4564 z"
                            Fill="{telerik:Office2013Resource ResourceKey=MainBrush}"
                            Margin="3 0"
                            Opacity="1"
                            HorizontalAlignment="Left"
                            Height="7"
                            Stretch="Fill"
                            VerticalAlignment="Center"
                            Width="4"
                            Visibility="{TemplateBinding StartIndicatorVisibility}"/>
                            <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="2 2 0 0" Orientation="Horizontal">
                                <Image x:Name="RecurrenceMark"
                                Grid.Column="0"
                                Margin="2 2 1 1"
                                Width="10"
                                Height="10"
                                Visibility="{Binding Path=RecurrenceState, Converter={StaticResource RecurrenceStateIsExeptionToVisibilityConverter}}"
                                HorizontalAlignment="Left"
                                Source="{StaticResource AppointmentItem_Recurrence}"/>
                                <Image x:Name="ExceptionMark"
                                Grid.Column="0"
                                Margin="2 2 1 1"
                                Width="10"
                                Height="10"
                                Visibility="{Binding Path=RecurrenceState, Converter={StaticResource RecurrenceStateIsOccurenceToVisibilityConverter}}"
                                HorizontalAlignment="Left"
                                Source="{StaticResource AppointmentItem_Exception}"/>
                                <ContentControl x:Name="HighImportanceMark"
                                Template="{StaticResource HighImportanceMarkTemplate}"
                                Margin="2 1 1 0"
                                Style="{StaticResource ImportanceMarkContentControlStyle}"
                                Visibility="{Binding Importance, Converter={StaticResource EnumToVisibilityConverter}, ConverterParameter=High}"/>
                                <ContentControl x:Name="LowImportanceMark"
                                Template="{StaticResource LowImportanceMarkTemplate}"
                                Margin="2 1 1 0"
                                Style="{StaticResource ImportanceMarkContentControlStyle}"
                                Visibility="{Binding Importance, Converter={StaticResource EnumToVisibilityConverter}, ConverterParameter=Low}"/>
                            </StackPanel>
                            <ContentPresenter
                            Grid.Column="2"
                            Margin="{TemplateBinding Padding}"
                            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                            VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                            <Path
                            Grid.Column="3"
                            Data="M1109.0469,332.70313 L1113.0469,336.29663 L1109.0469,339.68823 z"
                            Margin="3 0"
                            Fill="{telerik:Office2013Resource ResourceKey=MainBrush}"
                            Opacity="1"
                            HorizontalAlignment="Right"
                            Height="6.984"
                            Stretch="Fill"
                            VerticalAlignment="Center"
                            Width="4"
                            Visibility="{TemplateBinding EndIndicatorVisibility}"/>
                        </Grid>
                        <Grid x:Name="MouseOverGrid" Visibility="Collapsed" Opacity="0">
                            <Border x:Name="MouseOverVisual" IsHitTestVisible="False" Background="{telerik:Office2013Resource ResourceKey=EffectHighBrush}" BorderBrush="{x:Null}"/>
                            <Border x:Name="PART_StartResizeGrip"
                            Background="Transparent"
                            HorizontalAlignment="Left"
                            VerticalAlignment="Stretch"
                            Cursor="SizeWE"
                            dragDrop:DragDropManager.AllowDrag="True"
                            Width="6"
                            Visibility="{Binding IsAllDay, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InvertedBooleanToVisibilityConverter}}"
                            dragDrop:DragDropManager.TouchDragTrigger="TapAndHold"/>
                            <Border x:Name="PART_EndResizeGrip"
                            Background="Transparent"
                            HorizontalAlignment="Right"
                            VerticalAlignment="Stretch"
                            Cursor="SizeWE"
                            dragDrop:DragDropManager.AllowDrag="True"
                            Width="6"
                            Visibility="{Binding IsAllDay, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource InvertedBooleanToVisibilityConverter}}"
                            dragDrop:DragDropManager.TouchDragTrigger="TapAndHold"/>
                            <!--<telerik:RadButton x:Name="DeleteButton"
                            Style="{StaticResource DeleteButtonStyle}"
                            ClickMode="Press"
                            CommandParameter="{Binding RelativeSource={RelativeSource TemplatedParent}}"
                            Visibility="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled, Converter={StaticResource BooleanToVisibilityConverter}}"
                            IsTabStop="False"
                            Command="{x:Static telerikScheduleView:RadScheduleViewCommands.DeleteAppointment}"/>-->
                        </Grid>
                    </Grid>
                </Grid>
            </ControlTemplate>

            <local:CustomAppointmentStyleSelector x:Key="CustomAppointmentStyleSelector">
                <local:CustomAppointmentStyleSelector.CustomHorizontalStyle>
                    <Style TargetType="telerik:AppointmentItem" BasedOn="{StaticResource AppointmentItemBaseStyle}">
                        <Setter Property="Template" Value="{StaticResource AppointmentItemHorizontalControlTemplate}" />
                    </Style>
                </local:CustomAppointmentStyleSelector.CustomHorizontalStyle>
                <local:CustomAppointmentStyleSelector.CustomVerticalStyle>
                    <Style TargetType="telerik:AppointmentItem" BasedOn="{StaticResource AppointmentItemBaseStyle}" >
                        <Setter Property="Template" Value="{StaticResource AppointmentItemVerticalControlTemplate}" />
                    </Style>
                </local:CustomAppointmentStyleSelector.CustomVerticalStyle>
            </local:CustomAppointmentStyleSelector>

            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Telerik.Windows.Themes.Office2013;component/Themes/System.Windows.xaml"/>
                <ResourceDictionary Source="/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.xaml"/>
                <ResourceDictionary Source="/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.Input.xaml"/>
                <ResourceDictionary Source="/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.Navigation.xaml"/>
                <ResourceDictionary Source="/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.ScheduleView.xaml"/>                
            </ResourceDictionary.MergedDictionaries>            
        </ResourceDictionary>        
    </UserControl.Resources>

    <Grid x:Name="Root">
        <telerik:RadScheduleView x:Name="ScheduleView" SnapAppointments="True" SelectedSlot="{Binding SelectedSlot, Mode=TwoWay}" AppointmentStyleSelector="{StaticResource CustomAppointmentStyleSelector}" AppointmentItemContentTemplate="{StaticResource AppointmentTemplate}" GroupHeaderStyleSelector="{StaticResource CustomGroupHeaderStyleSelector}" IsInlineEditingEnabled="False" NavigationHeaderVisibility="Collapsed"
                                 MinTimeRulerExtent="200" MaxTimeRulerExtent="5000" DragEnter="ScheduleView_DragEnter" AppointmentSelectionChanged="Control_AppointmentSelectionChanged" AppointmentEditing="Control_AppointmentEditing" AppointmentEdited="Control_AppointmentEdited" ShowDialog="Control_ShowDialog" MouseRightButtonUp="ScheduleView_MouseRightButtonUp">
            <telerik:RadScheduleView.ViewDefinitions>
                <telerik:WeekViewDefinition x:Name="View" MajorTickLength="1h" FirstDayOfWeek="Monday" MinorTickLength="15min" TimerulerMajorTickStringFormat="{}{0:H }:{0:mm} " TimerulerMinorTickStringFormat=":{0:mm} " GroupHeaderDateStringFormat="{Binding Me.GroupHeaderDateStringFormat}" />
            </telerik:RadScheduleView.ViewDefinitions>            
            
            <telerik:RadScheduleView.DragDropBehavior>
                <local:CreateScheduleCustomDragDropBehavior />
            </telerik:RadScheduleView.DragDropBehavior>
            
            <telerik:RadScheduleView.SnapBehavior>
                <local:CreateScheduleCustomSnapBehavior />
            </telerik:RadScheduleView.SnapBehavior>

            <!--<telerik:RadContextMenu.ContextMenu>
                <telerik:RadContextMenu x:Name="GridContextMenu" ItemClick="GridContextMenu_ItemClick" Opening="GridContextMenu_Opening">
                    <telerik:RadContextMenu.Items>
                        <telerik:RadMenuItem Header="Ajouter une période" x:Name="MIAdd" />
                        <telerik:RadMenuItem Header="Modifier la période courante" x:Name="MIUpd" />
                        <telerik:RadMenuItem Header="Effacer la période courante" x:Name="MIDel" />
                    </telerik:RadContextMenu.Items>
                </telerik:RadContextMenu>
            </telerik:RadContextMenu.ContextMenu>-->

        </telerik:RadScheduleView>        
    </Grid>
</UserControl>


and in the constructor of mu userconsole I do the following:

            Application.Current.Resources.MergedDictionaries.Clear();
            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Telerik.Windows.Themes.Office2013;component/Themes/System.Windows.xaml", UriKind.RelativeOrAbsolute) });
            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.xaml", UriKind.RelativeOrAbsolute) });
            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.Input.xaml", UriKind.RelativeOrAbsolute) });
            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.Navigation.xaml", UriKind.RelativeOrAbsolute) });
            Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("/Telerik.Windows.Themes.Office2013;component/Themes/Telerik.Windows.Controls.ScheduleView.xaml", UriKind.RelativeOrAbsolute) });            

Thank's
Alain
0
Kalin
Telerik team
answered on 13 Feb 2014, 02:50 PM
Hi Alain,

I tried to reproduce the described error by not avail. I created a WPF Control Library project with the provided UserControl, used it in the other WPF project and worked as expected. I'm attaching my sample project so you can check it and let me know if it helps or you have a different scenario.

I'm looking forward to your reply.

Regards,
Kalin
Telerik

Check out the new Telerik Platform - the only modular platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native apps. Register for the free online keynote and webinar to learn more about the Platform on Wednesday, February 12, 2014 at 11:00 a.m. ET (8:00 a.m. PT).

0
Christie Admin
Top achievements
Rank 1
answered on 13 Feb 2014, 03:21 PM
Hi Kalin,

when I execute your demo, the application crash with the following error message:

System.Windows.Markup.XamlParseException occurred
  HResult=-2146233087
  Message=La valeur fournie sur 'System.Windows.Markup.StaticResourceHolder' a levé une exception.
  Source=PresentationFramework
  LineNumber=0
  LinePosition=0
  StackTrace:
       à System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
       à System.Windows.Markup.WpfXamlLoader.LoadDeferredContent(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings parentSettings, Uri baseUri)
       à System.Windows.ResourceDictionary.CreateObject(KeyRecord key)
       à System.Windows.ResourceDictionary.OnGettingValue(Object key, Object& value, Boolean& canCache)
       à System.Windows.ResourceDictionary.OnGettingValuePrivate(Object key, Object& value, Boolean& canCache)
       à System.Windows.ResourceDictionary.GetValueWithoutLock(Object key, Boolean& canCache)
       à System.Windows.ResourceDictionary.GetValue(Object key, Boolean& canCache)
       à System.Windows.ResourceDictionary.GetValueWithoutLock(Object key, Boolean& canCache)
       à System.Windows.ResourceDictionary.GetValue(Object key, Boolean& canCache)
       à System.Windows.ResourceDictionary.FetchResource(Object resourceKey, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, Boolean canCacheAsThemeResource, Boolean& canCache)
       à System.Windows.FrameworkElement.FindResourceInTree(FrameworkElement feStart, FrameworkContentElement fceStart, DependencyProperty dp, Object resourceKey, Object unlinkedParent, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, DependencyObject boundaryElement, InheritanceBehavior& inheritanceBehavior, Object& source)
       à System.Windows.FrameworkElement.FindResourceInternal(FrameworkElement fe, FrameworkContentElement fce, DependencyProperty dp, Object resourceKey, Object unlinkedParent, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, DependencyObject boundaryElement, Boolean isImplicitStyleLookup, Object& source)
       à System.Windows.FrameworkElement.FindImplicitStyleResource(FrameworkElement fe, Object resourceKey, Object& source)
       à System.Windows.FrameworkElement.GetRawValue(DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry& entry)
       à System.Windows.FrameworkElement.EvaluateBaseValueCore(DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry& newEntry)
       à System.Windows.DependencyObject.EvaluateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry newEntry, OperationType operationType)
       à System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
       à System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
       à System.Windows.FrameworkElement.UpdateStyleProperty()
       à System.Windows.FrameworkElement.OnInitialized(EventArgs e)
       à Telerik.Windows.Controls.ScheduleViewBase.OnInitialized(EventArgs e) dans c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\ScheduleView\ScheduleView\Controls\ScheduleView.Common.cs:ligne 1921
  InnerException: System.IO.FileLoadException
       HResult=-2146234304
       Message=Impossible de charger le fichier ou l'assembly 'Telerik.Windows.Controls, Version=2013.3.1204.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7' ou une de ses dépendances. La définition trouvée du manifeste de l'assembly ne correspond pas à la référence de l'assembly. (Exception de HRESULT : 0x80131040)
       Source=mscorlib
       FileName=Telerik.Windows.Controls, Version=2013.3.1204.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7
       FusionLog==== Informations d'état de liaison préalable ===
JRN : DisplayName = Telerik.Windows.Controls, Version=2013.3.1204.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7
 (Fully-specified)
JRN : Appbase = file:///C:/Users/agosselin/Desktop/DeleteButton2/ScheduleViewWPF/bin/Debug/
JRN : PrivatePath initial = NULL
Assembly appelant : PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
JRN : cette liaison démarre dans le contexte de chargement de default.
JRN : utilisation du fichier de configuration de l'application : C:\Users\agosselin\Desktop\DeleteButton2\ScheduleViewWPF\bin\Debug\ScheduleViewWPF.vshost.exe.Config
JRN : utilisation du fichier de configuration d'hôte :
JRN : utilisation du fichier de configuration de l'ordinateur à partir de C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
JRN : référence post-stratégie : Telerik.Windows.Controls, Version=2013.3.1204.40, Culture=neutral, PublicKeyToken=5803cfa389c90ce7
JRN : tentative de téléchargement de la nouvelle URL file:///C:/Users/agosselin/Desktop/DeleteButton2/ScheduleViewWPF/bin/Debug/Telerik.Windows.Controls.DLL.
AVT : la comparaison du nom de l'assembly a entraîné l'incompatibilité : Numéro de révision
ERR : impossible de terminer l'installation de l'assembly (hr = 0x80131040). Détection terminée.

       StackTrace:
            à System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type)
            à System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
            à System.Reflection.Assembly.GetType(String name, Boolean throwOnError)
            à System.Windows.Baml2006.Baml2006SchemaContext.ResolveBamlTypeToType(BamlType bamlType)
            à System.Windows.Baml2006.Baml2006SchemaContext.ResolveBamlType(BamlType bamlType, Int16 typeId)
            à System.Windows.Baml2006.Baml2006SchemaContext.GetXamlType(Int16 typeId)
            à System.Windows.Baml2006.Baml2006SchemaContext.GetProperty(Int16 propertyId, XamlType parentType)
            à System.Windows.Baml2006.Baml2006Reader.Process_PropertyWithConverter()
            à System.Windows.Baml2006.Baml2006Reader.Process_OneBamlRecord()
            à System.Windows.Baml2006.Baml2006Reader.ReadObject(KeyRecord record)
            à System.Windows.ResourceDictionary.CreateObject(KeyRecord key)
            à System.Windows.ResourceDictionary.OnGettingValue(Object key, Object& value, Boolean& canCache)
            à System.Windows.ResourceDictionary.OnGettingValuePrivate(Object key, Object& value, Boolean& canCache)
            à System.Windows.ResourceDictionary.GetValueWithoutLock(Object key, Boolean& canCache)
            à System.Windows.ResourceDictionary.GetValue(Object key, Boolean& canCache)
            à System.Windows.DeferredResourceReference.GetValue(BaseValueSourceInternal valueSource)
            à System.Windows.StaticResourceExtension.TryProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference, Boolean mustReturnDeferredResourceReference)
            à System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference)
            à System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider)
            à MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
       InnerException:

Thank's
Alain
0
Accepted
Kalin
Telerik team
answered on 18 Feb 2014, 09:51 AM
Hello Alain,

The project uses no XAML binaries and when you start it probably targets the XAML binaries from the installation folder. What you need to do is to add references to the binaries located in the Binaries.NoXaml folder which is located in the installation folder of the controls. The binaries you need are Telerik.Windows.Controls, Input, Navigation, ScheduleView, Telerik.Windows.Data and the Office2013 and you should add them to the both projects in the solution. The Office 2013 theme uses Implicit Styles and the approach in the article also needs no XAML binaries.

Please give it a try and if you still have any issues let us know.

Regards,
Kalin
Telerik
Tags
ScheduleView
Asked by
Christie Admin
Top achievements
Rank 1
Answers by
Kalin
Telerik team
Christie Admin
Top achievements
Rank 1
Share this question
or