Back to Devexpress

TimeSpanChartRangeControlClient.SnapAlignment Property

wpf-devexpress-dot-xpf-dot-charts-dot-rangecontrolclient-dot-timespanchartrangecontrolclient.md

latest7.0 KB
Original Source

TimeSpanChartRangeControlClient.SnapAlignment Property

Specifies the measurement unit to which selection thumbs of the range control are snapped.

Namespace : DevExpress.Xpf.Charts.RangeControlClient

Assembly : DevExpress.Xpf.Charts.v25.2.dll

NuGet Package : DevExpress.Wpf.Charts

Declaration

csharp
public TimeSpanMeasureUnit SnapAlignment { get; set; }
vb
Public Property SnapAlignment As TimeSpanMeasureUnit

Property Value

TypeDescription
TimeSpanMeasureUnit

A TimeSpanMeasureUnit enumeration value that represents the selection thumbs’ alignment interval.

|

Available values:

NameDescription
Millisecond

Specifies millisecond as the measurement unit for a time-span axis.

| | Second |

Specifies second as the measurement unit for a time-span axis.

| | Minute |

Specifies minute as the measurement unit for a time-span axis.

| | Hour |

Specifies hour as the measurement unit for a time-span axis.

| | Day |

Specifies day as the measurement unit for a time-span axis.

|

Remarks

Use the SnapAlignment property to snap the selection thumbs to the range interval when dragging them in the range control’s viewport.

Before using the SnapAlignment property, make sure the RangeControl.AllowSnapToInterval property is set to true.

Example

This example demonstrates how to use the time-span chart client for a range control to display a chart with time-span data within the range control’s viewport.

In this example, a time-span chart range control client is bound to a System.Collections.Generic.List containing DataSourceItem objects.

Each DataSourceItem object contains Argument and Value properties, to which a time-span chart range control client is bound via its ChartRangeControlClient.ArgumentDataMember and ChartRangeControlClient.ValueDataMember properties.

xaml
<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TimeSpanChartRangeControlClient"
        xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" 
        xmlns:Custom="http://schemas.devexpress.com/winfx/2008/xaml/charts/rangecontrolclient" 
        x:Class="TimeSpanChartRangeControlClient.MainWindow"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <dxe:RangeControl>
            <Custom:TimeSpanChartRangeControlClient ArgumentDataMember="Argument" 
                                                    ValueDataMember="Value" 
                                                    ItemsSource="{Binding}" 
                                                    GridAlignment="Hour"
                                                    GridSpacing="8"
                                                    SnapAlignment="Hour"> 
                <Custom:TimeSpanChartRangeControlClient.View>
                    <Custom:RangeControlClientLineView ShowMarkers="True" 
                                                       MarkerSize="8"/>
                </Custom:TimeSpanChartRangeControlClient.View>
            </Custom:TimeSpanChartRangeControlClient>
        </dxe:RangeControl>
    </Grid>
</Window>
csharp
using System;
using System.Collections.Generic;
using System.Windows;
namespace TimeSpanChartRangeControlClient {
    public class DataSourceItem {
        public object Argument { get; set; }
        public object Value { get; set; }
    }
    public partial class MainWindow : Window {
        const int dataCount = 100;
        List<DataSourceItem> data = new List<DataSourceItem>();
        List<DataSourceItem> GenerateDateTimeData() {
            List<DataSourceItem> data = new List<DataSourceItem>();
            Random rand = new Random();
            double value = 0;
            for (int i = 0; i < dataCount; i++) {
                value += (rand.NextDouble() - 0.5);
                data.Add(new DataSourceItem() { Argument = TimeSpan.FromMinutes(i * 30),
                                                Value = Math.Abs(value + Math.Sin(i * 0.6)) });
            }
            return data;
        }
        public MainWindow() {
            InitializeComponent();
            this.DataContext = GenerateDateTimeData();
        }
    }
}
vb
Imports System
Imports System.Collections.Generic
Imports System.Windows
Namespace TimeSpanChartRangeControlClient
    Public Class DataSourceItem
        Public Property Argument As Object
        Public Property Value As Object
    End Class
    Public Partial Class MainWindow
        Inherits Window
        Const dataCount As Integer = 100
        Private data As List(Of DataSourceItem) = New List(Of DataSourceItem)()
        Private Function GenerateDateTimeData() As List(Of DataSourceItem)
            Dim data As List(Of DataSourceItem) = New List(Of DataSourceItem)()
            Dim rand As Random = New Random()
            Dim value As Double = 0
            For i As Integer = 0 To dataCount - 1
                value += (rand.NextDouble() - 0.5)
                data.Add(New DataSourceItem() With {
                    .Argument = TimeSpan.FromMinutes(i * 30),
                    .Value = Math.Abs(value + Math.Sin(i * 0.6))
                })
            Next
            Return data
        End Function
        Public Sub New()
            InitializeComponent()
            Me.DataContext = GenerateDateTimeData()
        End Sub
    End Class
End Namespace

See Also

TimeSpanChartRangeControlClient Class

TimeSpanChartRangeControlClient Members

DevExpress.Xpf.Charts.RangeControlClient Namespace