Telerik Forums
UI for WPF Forum
1 answer
116 views
How to create wpf control looks like this? 
Martin Ivanov
Telerik team
 answered on 14 Jun 2017
3 answers
445 views

Hi,
We want to use the RadMap as an instrument to display large images from hard disk by using a custom tiled map provider. Data and tile access works (using GetCachedTile and a Stream), but we have problems to adapt the coordinates.
We'd like to have a clean way (without using code behind), adhering to the MVVM pattern, to somehow extract map coordinates at Mouse Move events.

How can we bind or access locations?
Do you have some ideas how to translate geo coordinates to 2D coordinates (best would be in pixels X/Y from map boarder / tile 0/0)?
Could we avoid geo coordinates in general?

The most important feature for us is a smooth display of tiled image data - is there a different rad control which would facilitate this?

Martin Ivanov
Telerik team
 answered on 14 Jun 2017
4 answers
73 views

Whenever I save a docked out (floating) Dock Window using SaveToXml(), and then load it back.
After loading using LoadFromXml() my docked out (floating) dock Window gets converted into a Tool window.

Kindly suggest a solution for this problem.

Tayyaba
Top achievements
Rank 1
 answered on 14 Jun 2017
2 answers
1.3K+ views

Hello

 

do you have a Textbox with clear button (like the search textbox in ShowSearchPanel)?

I can build my own, but for me it is a basic control, so i'm suprise that i find nothing by Telerik.

 

Thank you

Petar Mladenov
Telerik team
 answered on 13 Jun 2017
1 answer
142 views
Hi,

I want to use the spreadsheet in a WPF application which uses the Caliburn Micro framework and follows MVVM arch..
The objective will be to display data and also save the edited data into memory in runtime.

Can you please provide a sample for the same.
Tanya
Telerik team
 answered on 13 Jun 2017
4 answers
846 views

Hello

The ItemSource of my RadGridView is binded to a QueryableCollectionView in my ViewModel.

<telerik:RadGridView x:Name="radGridView"
                     GroupRenderMode="Nested"
                     ItemsSource="{Binding MyView, UpdateSourceTrigger=PropertyChanged}"    
                     AutoGenerateColumns="False"
                     ShowGroupPanel="True"
                     RowIndicatorVisibility="Collapsed"
                     IsReadOnly="True"
                     ShowSearchPanel="True">
<telerik:RadGridView.Columns>
...
</telerik:RadGridView.Columns>
</telerik:RadGridView>

 

I use Items.ItemCount to show the Count of Items in the RadGridView. It works great, also when I filter the GridView.  However when I use grouping, it works not correctly. It counts the groups instead of Items. 

<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Items.ItemCount, ElementName=radGridView}" TextAlignment="Right"/>

 

How can I get around this problem? I do not want to use the AggregateFunctions.

 

Thank you.

Birgit
Top achievements
Rank 1
 answered on 13 Jun 2017
5 answers
248 views

Hello Telerik,

I have to implement an application which basically works in the same way of your ScheduleView demo called "ScheduleView and TimeBar" (TimeBar minimap for ScheduleView). So: I want a grouped timeline view with appointments, a larger range of this data previewed in the TimeBar above, and I also need the ability to add, edit, delete and drag-and-drop appointments as well.

The only thing is that I want my timeview to work scaled to seconds. This means I need to be able to create and manage appointments with a duration of some second (e.g. 5 or 10 seconds) and to keep the view "zoomed" to see these small details (e.g. I must be able to have the view set to see 1 minute in the planner, split into 60 seconds). Unfortunately I am not succeeding in this because I'm experiencing some difficulty working with TimelineViewDefinition's VisibleDays, MinTimeRulerExtent, MinorTickLength and MajorTickLength.

Can you please suggest a valid approach to achieve my implementation? And if ScheduleView is not the best option, can you suggest me a valid one (I tried RadTimeline and it seems effective, but there are no add, edit, delete and drag-and-drop behaviors at all)?

Thank you

Dilyan Traykov
Telerik team
 answered on 13 Jun 2017
1 answer
101 views

Hi,

 

I am investigating a behavior where my client reports being in MouseTool.PanTool, and seeing links being created out of nothing towards an existing box.

The only way I have been able to reproduce this was to explicitly switch to the Connector tool; however, our application does not normally expose this tool.
Is there a mouse of keyboard shortcut, or a sequence of operations that would allow creating source-less connectors while the active tool is Pan ?

Regards,

-Raphaël

Petar Mladenov
Telerik team
 answered on 13 Jun 2017
3 answers
251 views
I am evaluating the DevCraft suite for WPF, and I've run into an odd problem.  

I'm developing an internal application for my company.  It uses .NET 4.5, WPF, Prism, and Entity Framework 5.0.

When I instantiate a RadTreeView control and populate it with static RadTreeViewItem objects in the XAML, it doesn't display.  If I set the background color, I get a colored rectangle with no items.  Using Snoop I can see that it exists in the visual tree and the HasItems property is true.  This behavior is the same regardless of whether I navigate to a region using Prism or declare it manually in the shell window.

If I create a separate application and place the static test RadTreeView in it, it behaves as expected.

Any ideas?

Thanks!
Martin Ivanov
Telerik team
 answered on 13 Jun 2017
6 answers
212 views

Hello. First, I apologize for the fact that I can seem somewhat intrusive. I want to use RadTileView for real-time charts displaying. For example, if I need the folowing RadCartesianChart (please see 'SensorsSignals.PNG' file attached and XAML markup below)

<telerik:RadCartesianChart x:Name="chart1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" EmptyContent="{Binding ChartEmptyContent}">
   <!--Turn scrollbar visualization off-->
   <telerik:RadCartesianChart.Resources>
      <Style TargetType="telerik:PanZoomBar">
         <Setter Property="Visibility" Value="Collapsed"/>
       </Style>
   </telerik:RadCartesianChart.Resources>
   <!--X axis-->
   <telerik:RadCartesianChart.HorizontalAxis>
      <telerik:CategoricalAxis LabelInterval="6"/>
   </telerik:RadCartesianChart.HorizontalAxis>
   <!--Y axis-->
   <telerik:RadCartesianChart.VerticalAxis>
     <telerik:LinearAxis Minimum="-128" Maximum="127" MajorStep="8" />
   </telerik:RadCartesianChart.VerticalAxis>
   <!--Chart curve itself-->
   <telerik:SplineSeries CategoryBinding="Item1" ValueBinding="Item2" ItemsSource="{Binding SensorData}" Style="{StaticResource SplineSeriesStyle}"/>
   <!--Layout grid-->
   <telerik:RadCartesianChart.Grid>
     <telerik:CartesianChartGrid MajorLinesVisibility="XY" StripLinesVisibility="XY" IsTabStop="False">
        <telerik:CartesianChartGrid.YStripeBrushes>
           <SolidColorBrush Color="#FFD7D7D7" Opacity="0.3" />
           <SolidColorBrush Color="Transparent" />
        </telerik:CartesianChartGrid.YStripeBrushes>
        <telerik:CartesianChartGrid.XStripeBrushes>
           <SolidColorBrush Color="#FFD7D7D7" Opacity="0.3" />
           <SolidColorBrush Color="Transparent" />
        </telerik:CartesianChartGrid.XStripeBrushes>
     </telerik:CartesianChartGrid>
   </telerik:RadCartesianChart.Grid>
   <!--Behaviors of the chart-->
   <telerik:RadCartesianChart.Behaviors>
     <telerik:ChartPanAndZoomBehavior DragMode="Pan" ZoomMode="Both" PanMode="Both"/>
   </telerik:RadCartesianChart.Behaviors>
</telerik:RadCartesianChart>

According to your 'DataBinding_WPF' program example and 'Data Binding' paper in http://docs.telerik.com/devtools/wpf/controls/radtileview/populating-with-data/populating-binding-to-collection I do the folowing steps.

1) In the View I write such markup:

<UserControl x:Class="UltrasonicSensors.Views.UltrasonicSensorsView"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
             xmlns:prism="http://prismlibrary.com/"            
             prism:ViewModelLocator.AutoWireViewModel="True">
 
    <FrameworkElement.Resources>
        <!--Curve thickness and color style-->
        <Style x:Key="SplineSeriesStyle" TargetType="telerik:SplineSeries" BasedOn="{StaticResource SplineSeriesStyle}">
            <Setter Property="Stroke" Value="RoyalBlue"/>
            <Setter Property="StrokeThickness" Value="3"/>
        </Style>
        <DataTemplate x:Key="ItemTemplate">
            <TextBlock Text="{Binding ChartCaption}" />
        </DataTemplate>
        <!--Template of sensor signal chart-->
        <DataTemplate x:Key="ContentTemplate">
            <telerik:RadCartesianChart x:Name="chart1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" EmptyContent="{Binding ChartEmptyContent}">
                <!--Turn scrollbars off-->
                <telerik:RadCartesianChart.Resources>
                    <Style TargetType="telerik:PanZoomBar">
                        <Setter Property="Visibility" Value="Collapsed"/>
                    </Style>
                </telerik:RadCartesianChart.Resources>
                <!--X axis-->
                <telerik:RadCartesianChart.HorizontalAxis>
                    <telerik:CategoricalAxis LabelInterval="6"/>
                </telerik:RadCartesianChart.HorizontalAxis>
                <!--Y axis-->
                <telerik:RadCartesianChart.VerticalAxis>
                    <telerik:LinearAxis Minimum="-128" Maximum="127" MajorStep="8" />
                </telerik:RadCartesianChart.VerticalAxis>
                <!--Chart curve itself-->
                <telerik:SplineSeries CategoryBinding="Item1" ValueBinding="Item2" ItemsSource="{Binding SensorData}" Style="{StaticResource SplineSeriesStyle}"/>
                <!--Layout grid-->
                <telerik:RadCartesianChart.Grid>
                    <telerik:CartesianChartGrid MajorLinesVisibility="XY" StripLinesVisibility="XY" IsTabStop="False">
                        <telerik:CartesianChartGrid.YStripeBrushes>
                            <SolidColorBrush Color="#FFD7D7D7" Opacity="0.3" />
                            <SolidColorBrush Color="Transparent" />
                        </telerik:CartesianChartGrid.YStripeBrushes>
                        <telerik:CartesianChartGrid.XStripeBrushes>
                            <SolidColorBrush Color="#FFD7D7D7" Opacity="0.3" />
                            <SolidColorBrush Color="Transparent" />
                        </telerik:CartesianChartGrid.XStripeBrushes>
                    </telerik:CartesianChartGrid>
                </telerik:RadCartesianChart.Grid>
                <!--Behaviors-->
                <telerik:RadCartesianChart.Behaviors>
                    <telerik:ChartPanAndZoomBehavior DragMode="Pan" ZoomMode="Both" PanMode="Both"/>
                </telerik:RadCartesianChart.Behaviors>
            </telerik:RadCartesianChart>
        </DataTemplate>
    </FrameworkElement.Resources>
 
    <Grid>
        <!--Sensors signals charts:-->
        <telerik:RadTileView x:Name="xTileView" Grid.Row="0" Grid.Column="0" PreservePositionWhenMaximized="True" MinimizedColumnWidth="150"
                             ItemTemplate="{StaticResource ItemTemplate}"
                             ContentTemplate="{StaticResource ContentTemplate}"
                             ItemsSource="{Binding SensorSignalCharts}">
        </telerik:RadTileView>
    </Grid>
</UserControl>

In the ViewModel I write something similar to the following code in C# (note!!! this code here for STUBS but not for real ultrasonic signals!!!):

/// <summary>
/// ViewModel of charts of STUBS for signals of ultrasonic sensors.
/// </summary>
public class UltrasonicSensorsViewModel : BindableBase, IConfirmNavigationRequest
{
    #region Fields
     
    #region Constant Fields
    /// <summary>
    ///  Message about mising of chart data.
    /// </summary>
    private const string NO_DATA_FOR_CHART = "Нет данных для построения графика";
    /// <summary>
    /// Number of points to build a chart.
    /// </summary>
    private const int CHART_POINTS_QUANTITY = 180;
    #endregion
 
    #region Common Variable Fields
    /// <summary>
    /// Collection of View Models of sensor signal chart.
    /// </summary>
    private RadObservableCollection<SensorSignalChartViewModel> _sensorSignalCharts;
    #endregion
 
    #endregion
 
    #region Constructors
 
    public UltrasonicSensorsViewModel()
    {
        // Data for constructing a sinusoidal STUB chart.
        byte[] aDummyData = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
                0x01, 0x00, 0x00, 0xFE, 0xFE, 0xFF, 0x00, 0x01, 0x03, 0x02, 0x01, 0x00, 0xFD, 0xFC, 0xFD, 0x00, 0x04, 0x06, 0x07, 0x03, 0xFD, 0xF7, 0xF3, 0xF6,
                0x00, 0x0B, 0x14, 0x15, 0x0C, 0xFC, 0xEA, 0xDF, 0xE2, 0xF4, 0x0E, 0x26, 0x2F, 0x24, 0x07, 0xE4, 0xCA, 0xC6, 0xDB, 0x01, 0x2B, 0x44, 0x41, 0x22,
                0xF3, 0xC8, 0xB4, 0xBF, 0xE6, 0x18, 0x41, 0x4E, 0x3B, 0x10, 0xE0, 0xBE, 0xB8, 0xCF, 0xF9, 0x23, 0x3E, 0x3E, 0x26, 0x01, 0xDF, 0xCD, 0xCF, 0xE5,
                0x01, 0x1A, 0x27, 0x23, 0x13, 0x00, 0xEF, 0xE7, 0xE9, 0xF2, 0xFE, 0x08, 0x0D, 0x0E, 0x0B, 0x06, 0x01, 0xFD, 0xF9, 0xF6, 0xF6, 0xF8, 0xFD, 0x03,
                0x0A, 0x0E, 0x0D, 0x07, 0xFF, 0xF5, 0xF0, 0xF0, 0xF7, 0x00, 0x0A, 0x10, 0x0E, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
        // Create the collection of View Models of sensor signal chart.    
        this.SensorSignalCharts = new RadObservableCollection<SensorSignalChartViewModel>();
        // Create array of chart points.
        Tuple<int, double>[] aSensorData = new Tuple<int, double>[CHART_POINTS_QUANTITY];
        sbyte[] aSignedDummyData = Array.ConvertAll(aDummyData, b => unchecked((sbyte)b));
        for (int i = 0; i < aSignedDummyData.Length; i++)
            aSensorData[i] = new Tuple<int, double>(i, aSignedDummyData[i]);
        // Populate all displayed charts with data.
        SensorSignalChartViewModel sscm = new SensorSignalChartViewModel(aSensorData);
        sscm.ChartCaption = "График сигнала от первого сенсора";
        sscm.ChartEmptyContent = NO_DATA_FOR_CHART;
        this.SensorSignalCharts.Add(sscm);
        sscm = new SensorSignalChartViewModel(aSensorData);
        sscm.ChartCaption = "График сигнала от второго сенсора";
        sscm.ChartEmptyContent = NO_DATA_FOR_CHART;
        this.SensorSignalCharts.Add(sscm);
        sscm = new SensorSignalChartViewModel(aSensorData);
        sscm.ChartCaption = "График сигнала от третьего сенсора";
        sscm.ChartEmptyContent = NO_DATA_FOR_CHART;
        this.SensorSignalCharts.Add(sscm);
        sscm = new SensorSignalChartViewModel(aSensorData);
        sscm.ChartCaption = "График сигнала от четвёртого сенсора";
        sscm.ChartEmptyContent = NO_DATA_FOR_CHART;
        this.SensorSignalCharts.Add(sscm);
        sscm = new SensorSignalChartViewModel(aSensorData);
        sscm.ChartCaption = "График сигнала от пятого сенсора";
        sscm.ChartEmptyContent = NO_DATA_FOR_CHART;
        this.SensorSignalCharts.Add(sscm);
        sscm = new SensorSignalChartViewModel(aSensorData);
        sscm.ChartCaption = "График сигнала от шестого сенсора";
        sscm.ChartEmptyContent = NO_DATA_FOR_CHART;
        this.SensorSignalCharts.Add(sscm);
        sscm = new SensorSignalChartViewModel(aSensorData);
        sscm.ChartCaption = "График сигнала от седьмого сенсора";
        sscm.ChartEmptyContent = NO_DATA_FOR_CHART;
        this.SensorSignalCharts.Add(sscm);
        sscm = new SensorSignalChartViewModel(aSensorData);
        sscm.ChartCaption = "График сигнала от восмого сенсора";
        sscm.ChartEmptyContent = NO_DATA_FOR_CHART;
        this.SensorSignalCharts.Add(sscm);
    }
 
    #endregion
 
    #region Properties
 
    /// <summary>
    /// Gets or sets Collection of View Models of sensor signal chart.
    /// </summary>
    public RadObservableCollection<SensorSignalChartViewModel> SensorSignalCharts
    {
        get { return this._sensorSignalCharts; }
        set { this.SetProperty(ref this._sensorSignalCharts, value); }
    }
 
    #endregion
}

All works OK here. BUT. If I need to locate inside the block of

<FrameworkElement.Resources>
  . . . . . . . . . . . . . . . . . .
</FrameworkElement.Resources>

a XAML markup which contains <UserControl.Resources>...</UserControl.Resources> blocks and <i:Interaction.Triggers>...</i:Interaction.Triggers> blocks then how WPF will behave itself in this case? Will she allow such markup or not? As far as I know, it's impossible to place one <.Resource> tag inside another <.Resource> tag. So, what I can do in this case? Below is XAML markup which I need to locate inside <FrameworkElement.Resource></FrameworkElement.Resource> tag. For clarity, I show it inside <UserControl></UserControl> tag as I've done it in the application.

<UserControl x:Class="DeviceReading.Views.t_GasVelocityPerBeamView"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
             xmlns:prism="http://prismlibrary.com/"
             xmlns:local="clr-namespace:DeviceReading"
             xmlns:views="clr-namespace:DeviceReading.Views"
             xmlns:commonControls="clr-namespace:CommonWpfControlLibrary;assembly=CommonWpfControlLibrary"
             prism:ViewModelLocator.AutoWireViewModel="True">   
     
    <UserControl.Resources>
        <telerik:ChartPalette x:Key="customPalette">
            <telerik:ChartPalette.SeriesEntries>
                <telerik:PaletteEntryCollection SeriesFamily="Line">
                    <telerik:PaletteEntry Fill="Blue" Stroke="Blue"/>
                    <telerik:PaletteEntry Fill="Crimson" Stroke="Crimson"/>
                    <telerik:PaletteEntry Fill="Green" Stroke="Green"/>
                    <telerik:PaletteEntry Fill="DarkOrange" Stroke="DarkOrange"/>
                    <telerik:PaletteEntry Fill="Purple" Stroke="Purple"/>
                    <telerik:PaletteEntry Fill="DarkTurquoise" Stroke="DarkTurquoise"/>
                    <telerik:PaletteEntry Fill="SaddleBrown" Stroke="SaddleBrown"/>
                    <telerik:PaletteEntry Fill="SlateBlue" Stroke="SlateBlue"/>
                </telerik:PaletteEntryCollection>
            </telerik:ChartPalette.SeriesEntries>
        </telerik:ChartPalette>
 
        <local:StringToLegendSettingsConverter x:Key="StringToLegendSettingsConverter"/>
    </UserControl.Resources>
     
    <i:Interaction.Triggers>
        <!--OK notification dialog-->
        <prism:InteractionRequestTrigger SourceObject="{Binding NotificationRequest, Mode=OneWay}">
            <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True">
                <prism:PopupWindowAction.WindowContent>
                    <commonControls:NotificationDialogPopupView/>
                </prism:PopupWindowAction.WindowContent>
                <prism:PopupWindowAction.WindowStyle>
                    <Style TargetType="Window">
                        <Setter Property="ResizeMode" Value="NoResize"/>
                        <Setter Property="SizeToContent" Value="WidthAndHeight"/>
                    </Style>
                </prism:PopupWindowAction.WindowStyle>
            </prism:PopupWindowAction>
        </prism:InteractionRequestTrigger>
        . . . . . . . . . . . . . . . . . . . . . . . . . . .
    </i:Interaction.Triggers>
     
    <Grid>
     
        <!--Menu displayed when user clicks right mouse button-->
        <telerik:RadContextMenu.ContextMenu>
            <telerik:RadContextMenu>
                <telerik:RadMenuItem Header="Show Bar Chart" IsCheckable="True" IsChecked="{Binding IsBarChartSelected, Mode=TwoWay}"
                                     Command="{Binding ShowBarChartCommand}"/>
                <telerik:RadMenuItem Header="Show Curve Splne Chart" IsCheckable="True" IsChecked="{Binding IsSplineChartSelected, Mode=TwoWay}"
                                     Command="{Binding ShowSplineChartCommand}"/>
                . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
            </telerik:RadContextMenu>
        </telerik:RadContextMenu.ContextMenu>
         
        <!--Bar chart of gas velocity value on each ultrasonic beam-->
        <telerik:RadCartesianChart Visibility="{Binding IsAbsoluteBarChartVisible}">
            <!--X axis-->
            <telerik:RadCartesianChart.HorizontalAxis>
                <telerik:CategoricalAxis/>
            </telerik:RadCartesianChart.HorizontalAxis>
            <!--Y axis---->
            <telerik:RadCartesianChart.VerticalAxis>
                <telerik:LinearAxis Title="Метры в секунду [м/с]" Minimum="{Binding ChartMinimum}" Maximum="{Binding ChartMaximum}" MajorStep="{Binding CurrentStep}"/>
            </telerik:RadCartesianChart.VerticalAxis>
            <!--Bar chart itself-->
            <telerik:RadCartesianChart.Series>
                <telerik:BarSeries ShowLabels="True" CategoryBinding="Category" ValueBinding="Value" ItemsSource="{Binding Data}" />
            </telerik:RadCartesianChart.Series>
        </telerik:RadCartesianChart>
         
        <!--Visualizer of colors of all curves in the curve chart of gas velocity value on each ultrasonic beam-->
        <telerik:RadLegend Grid.Column="1" Items="{Binding LegendItems, ElementName=splineAbsoluteChart}" HorizontalAlignment="Right" VerticalAlignment="Top"
                           Visibility="{Binding IsAbsoluteSplineChartVisible}"/>
        <!--Curve spline chart of gas velocity value on each ultrasonic beam-->
        <telerik:RadCartesianChart x:Name="splineAbsoluteChart" Visibility="{Binding IsAbsoluteSplineChartVisible}" Palette="{StaticResource customPalette}">
            <!--Turn scrollbars off-->
            <telerik:RadCartesianChart.Resources>
                <Style TargetType="telerik:PanZoomBar">
                    <Setter Property="Visibility" Value="Collapsed"/>
                </Style>
            </telerik:RadCartesianChart.Resources>
            <!--X axis-->
            <telerik:RadCartesianChart.HorizontalAxis>
                <telerik:DateTimeContinuousAxis MajorStepUnit="Second" LabelInterval="5" LabelFormat="hh:mm:ss" FontFamily="Segoe UI" PlotMode="OnTicks" TickOrigin="{Binding AlignmentDate}"/>
            </telerik:RadCartesianChart.HorizontalAxis>
            <!--Y axis-->
            <telerik:RadCartesianChart.VerticalAxis>
                <telerik:LinearAxis FontFamily="Segoe UI" Title="Метры в секунду [м/с]" />
            </telerik:RadCartesianChart.VerticalAxis>
            <!--Layout grid-->
            <telerik:RadCartesianChart.Grid>
                <telerik:CartesianChartGrid MajorLinesVisibility="XY" MajorXLineDashArray="3,4" MajorYLineDashArray="3,4"/>
            </telerik:RadCartesianChart.Grid>
            <!--Series provider of curves-->
            <telerik:RadCartesianChart.SeriesProvider>
                <telerik:ChartSeriesProvider Source="{Binding SeriesData}">
                    <telerik:ChartSeriesProvider.SeriesDescriptors>
                        <telerik:CategoricalSeriesDescriptor CategoryPath="Category" ValuePath="Value" ItemsSourcePath="ChartPoints">
                            <telerik:CategoricalSeriesDescriptor.TypeConverter>
                                <local:SeriesTypeConverter/>
                            </telerik:CategoricalSeriesDescriptor.TypeConverter>
                            <telerik:CategoricalSeriesDescriptor.Style>
                                <Style TargetType="telerik:SplineSeries" BasedOn="{StaticResource SplineSeriesStyle}">
                                    <Setter Property="LegendSettings" Value="{Binding  SeriesName, Converter={StaticResource StringToLegendSettingsConverter}}"/>
                                </Style>
                            </telerik:CategoricalSeriesDescriptor.Style>
                        </telerik:CategoricalSeriesDescriptor>
                    </telerik:ChartSeriesProvider.SeriesDescriptors>
                </telerik:ChartSeriesProvider>
            </telerik:RadCartesianChart.SeriesProvider>
            <!--Behaviors-->
            <telerik:RadCartesianChart.Behaviors>
                <telerik:ChartPanAndZoomBehavior DragMode="Pan" ZoomMode="Both"  PanMode="Both"/>
            </telerik:RadCartesianChart.Behaviors>
            <!--Mapping events handling to the ViewModel-->
            <telerik:EventToCommandBehavior.EventBindings>
                <telerik:EventBinding Command="{Binding ShowHistoricalChartCommand}" EventName="PreviewMouseDoubleClick" RaiseOnHandledEvents="True" PassEventArgsToCommand="True"/>
            </telerik:EventToCommandBehavior.EventBindings>
        </telerik:RadCartesianChart>
         
        . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
     
    </Grid>
</UserControl>

If you'd like you can see gas velocity bar chart in 'GasVelocityBarChart.PNG' file attached. And you can see gas velocity spline chart in 'GasVelocitySplineChart.PNG' file attached.

So, I'm very interested in the following thing: How to put the content (that is inside the <UserControl></UserControl> tag in the figure above) into <FrameworkElement.Resources></FrameworkElement.Resources> tag? After all, this inserted content itself has in its composition the <UserControl.Resources>...</UserControl.Resources> and <i:Interaction.Triggers>...</i:Interaction.Triggers> tags. Please help me understand this. I will be very grateful to you for your help because I really appreciate your help.

Dmitry
Top achievements
Rank 1
 answered on 13 Jun 2017
Narrow your results
Selected tags
Tags
GridView
General Discussions
Chart
RichTextBox
Docking
ScheduleView
ChartView
TreeView
Diagram
Map
ComboBox
TreeListView
Window
RibbonView and RibbonWindow
PropertyGrid
DragAndDrop
TabControl
TileView
Carousel
DataForm
PDFViewer
MaskedInput (Numeric, DateTime, Text, Currency)
AutoCompleteBox
DatePicker
Buttons
ListBox
GanttView
PivotGrid
Spreadsheet
Gauges
NumericUpDown
PanelBar
DateTimePicker
DataFilter
Menu
ContextMenu
TimeLine
Calendar
Installer and Visual Studio Extensions
ImageEditor
BusyIndicator
Slider
Expander
TileList
PersistenceFramework
DataPager
Styling
TimeBar
OutlookBar
TransitionControl
Book
FileDialogs
ToolBar
ColorPicker
TimePicker
SyntaxEditor
MultiColumnComboBox
VirtualGrid
Wizard
ExpressionEditor
NavigationView (Hamburger Menu)
DesktopAlert
WatermarkTextBox
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
ProgressBar
Sparkline
LayoutControl
TabbedWindow
ToolTip
CloudUpload
ColorEditor
TreeMap and PivotMap
EntityFrameworkCoreDataSource (.Net Core)
HeatMap
Chat (Conversational UI)
VirtualizingWrapPanel
Calculator
NotifyIcon
TaskBoard
TimeSpanPicker
BulletGraph
WebCam
CardView
DataBar
Licensing
FilePathPicker
PasswordBox
Rating
SplashScreen
Accessibility
Callout
CollectionNavigator
Localization
AutoSuggestBox
HighlightTextBlock
Security
TouchManager
StepProgressBar
VirtualKeyboard
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Jay
Top achievements
Rank 3
Bronze
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jay
Top achievements
Rank 3
Bronze
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?