Mini Kabibi Habibi
<local:ChartsDemoModule x:Class="ChartsDemo.Line2DControl" Height="400" Width="800"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:local="clr-namespace:ChartsDemo"
ModuleAppear="ChartsDemoModule_ModuleAppear">
<local:ChartsDemoModule.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/ChartsDemo;component/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
<local:DemoValuesProvider x:Key="DemoValuesProvider" />
<local:Marker2DKindToMarker2DModelConverter x:Key="Marker2DKindToMarker2DModelConverter" />
<local:MarkerSizeToLabelIndentConverter x:Key="MarkerSizeToLabelIndentConverter" />
<local:NullableBooleanToInvertedBoolConverter x:Key="InvertedBoolConverter"/>
</ResourceDictionary>
</local:ChartsDemoModule.Resources>
<dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
<dxdb:DemoModuleControl.OptionsContent>
<StackPanel MinWidth="120">
<dxe:CheckEdit Name="chbVisible" Content="Show Labels" IsChecked="False" Margin="0,0,0,10" />
<dx:GroupFrame Header="Angle" Margin="0,2,0,10" IsEnabled="{Binding ElementName=chbVisible, Path=IsChecked}">
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="0" HorizontalAlignment="Left" />
<TextBlock Grid.Column="1" Text="180" HorizontalAlignment="Center" />
<TextBlock Grid.Column="2" Text="360" HorizontalAlignment="Right" />
</Grid>
<dxe:TrackBarEdit Name="slAngle" Value="45" Minimum="0" Maximum="360">
<dxe:TrackBarEdit.TickPlacement>None</dxe:TrackBarEdit.TickPlacement>
</dxe:TrackBarEdit>
</StackPanel>
</dx:GroupFrame>
<dxe:CheckEdit Name="chbMarkers" Content="Show Markers" Margin="0,10,0,10" IsChecked="True" />
<dx:GroupFrame Header="Marker Size" Margin="0,2,0,0" IsEnabled="{Binding ElementName=chbMarkers, Path=IsChecked}">
<StackPanel>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="10" HorizontalAlignment="Left" />
<TextBlock Grid.Column="1" Text="25" HorizontalAlignment="Center" />
<TextBlock Grid.Column="2" Text="40" HorizontalAlignment="Right" />
</Grid>
<dxe:TrackBarEdit Name="slMarkerSize" Value="20" Minimum="10" Maximum="40" EditValue="20">
<dxe:TrackBarEdit.TickPlacement>None</dxe:TrackBarEdit.TickPlacement>
</dxe:TrackBarEdit>
</StackPanel>
</dx:GroupFrame>
<dx:GroupFrame Header="Marker" Margin="0,10,0,10">
<dxe:ListBoxEdit Name="lbMarker"
Background="{x:Null}"
ShowBorder="False"
ItemsSource="{Binding PredefinedMarker2DKinds, Source={StaticResource DemoValuesProvider}}"
IsEnabled="{Binding ElementName=chbMarkers, Path=IsChecked}">
<dxe:ListBoxEdit.StyleSettings>
<dxe:RadioListBoxEditStyleSettings />
</dxe:ListBoxEdit.StyleSettings>
</dxe:ListBoxEdit>
</dx:GroupFrame>
</StackPanel>
</dxdb:DemoModuleControl.OptionsContent>
<Grid>
<dxc:ChartControl Name="chart" BorderThickness="0" EnableAnimation="True"
CrosshairEnabled="{Binding ElementName=chbVisible, Path=IsChecked, Converter={StaticResource InvertedBoolConverter}}">
<dxc:ChartControl.CrosshairOptions>
<dxc:CrosshairOptions ShowArgumentLine="True" GroupHeaderPattern="{}Year: {A}">
<dxc:CrosshairOptions.CommonLabelPosition>
<dxc:CrosshairFreePosition DockTarget="{Binding ElementName=pane}"/>
</dxc:CrosshairOptions.CommonLabelPosition>
</dxc:CrosshairOptions>
</dxc:ChartControl.CrosshairOptions>
<dxc:ChartControl.Diagram>
<dxc:XYDiagram2D LabelsResolveOverlappingMinIndent="2">
<dxc:XYDiagram2D.DefaultPane>
<dxc:Pane Name="pane"/>
</dxc:XYDiagram2D.DefaultPane>
<dxc:XYDiagram2D.AxisY>
<dxc:AxisY2D GridLinesMinorVisible="True">
<dxc:AxisY2D.Title>
<dxc:AxisTitle Content="Population mid-year, millions" />
</dxc:AxisY2D.Title>
</dxc:AxisY2D>
</dxc:XYDiagram2D.AxisY>
<dxc:XYDiagram2D.AxisX>
<dxc:AxisX2D GridLinesVisible="True" />
</dxc:XYDiagram2D.AxisX>
<dxc:XYDiagram2D.Series>
<dxc:LineSeries2D x:Name="Europe"
DisplayName="Europe"
MarkerSize="{Binding ElementName=slMarkerSize, Path=Value}"
MarkerVisible="{Binding ElementName=chbMarkers, Path=IsChecked}"
MarkerModel="{Binding ElementName=lbMarker, Path=SelectedItem, Converter={StaticResource Marker2DKindToMarker2DModelConverter}}"
AnimationAutoStartMode="SetStartState">
<dxc:LineSeries2D.Label>
<dxc:SeriesLabel ConnectorVisible="False"
ResolveOverlappingMode="Default"
Indent="{Binding ElementName=slMarkerSize, Path=Value, Converter={StaticResource MarkerSizeToLabelIndentConverter}}"
dxc:MarkerSeries2D.Angle="{Binding ElementName=slAngle, Path=Value}"
Visible="{Binding ElementName=chbVisible, Path=IsChecked}" />
</dxc:LineSeries2D.Label>
<dxc:LineSeries2D.Points>
<dxc:SeriesPoint Argument="1950" Value="546" />
<dxc:SeriesPoint Argument="1960" Value="605" />
<dxc:SeriesPoint Argument="1970" Value="656" />
<dxc:SeriesPoint Argument="1980" Value="694" />
<dxc:SeriesPoint Argument="1990" Value="721" />
<dxc:SeriesPoint Argument="2000" Value="730" />
<dxc:SeriesPoint Argument="2010" Value="728" />
<dxc:SeriesPoint Argument="2020" Value="721" />
<dxc:SeriesPoint Argument="2030" Value="704" />
<dxc:SeriesPoint Argument="2040" Value="680" />
<dxc:SeriesPoint Argument="2050" Value="650" />
</dxc:LineSeries2D.Points>
</dxc:LineSeries2D>
<dxc:LineSeries2D x:Name="Americas"
DisplayName="Americas"
MarkerSize="{Binding ElementName=slMarkerSize, Path=Value}"
MarkerVisible="{Binding ElementName=chbMarkers, Path=IsChecked}"
MarkerModel="{Binding ElementName=lbMarker, Path=SelectedItem, Converter={StaticResource Marker2DKindToMarker2DModelConverter}}"
AnimationAutoStartMode="SetStartState">
<dxc:LineSeries2D.Label>
<dxc:SeriesLabel ConnectorVisible="False"
ResolveOverlappingMode="Default"
Indent="{Binding ElementName=slMarkerSize, Path=Value, Converter={StaticResource MarkerSizeToLabelIndentConverter}}"
dxc:MarkerSeries2D.Angle="{Binding ElementName=slAngle, Path=Value}"
Visible="{Binding ElementName=chbVisible, Path=IsChecked}" />
</dxc:LineSeries2D.Label>
<dxc:LineSeries2D.Points>
<dxc:SeriesPoint Argument="1950" Value="332" />
<dxc:SeriesPoint Argument="1960" Value="417" />
<dxc:SeriesPoint Argument="1970" Value="513" />
<dxc:SeriesPoint Argument="1980" Value="614" />
<dxc:SeriesPoint Argument="1990" Value="721" />
<dxc:SeriesPoint Argument="2000" Value="836" />
<dxc:SeriesPoint Argument="2010" Value="935" />
<dxc:SeriesPoint Argument="2020" Value="1027" />
<dxc:SeriesPoint Argument="2030" Value="1110" />
<dxc:SeriesPoint Argument="2040" Value="1178" />
<dxc:SeriesPoint Argument="2050" Value="1231" />
</dxc:LineSeries2D.Points>
</dxc:LineSeries2D>
<dxc:LineSeries2D x:Name="Africa"
DisplayName="Africa"
MarkerSize="{Binding ElementName=slMarkerSize, Path=Value}"
MarkerVisible="{Binding ElementName=chbMarkers, Path=IsChecked}"
MarkerModel="{Binding ElementName=lbMarker, Path=SelectedItem, Converter={StaticResource Marker2DKindToMarker2DModelConverter}}"
AnimationAutoStartMode="SetStartState">
<dxc:LineSeries2D.Label>
<dxc:SeriesLabel ConnectorVisible="False"
ResolveOverlappingMode="Default"
Indent="{Binding ElementName=slMarkerSize, Path=Value, Converter={StaticResource MarkerSizeToLabelIndentConverter}}"
dxc:MarkerSeries2D.Angle="{Binding ElementName=slAngle, Path=Value}"
Visible="{Binding ElementName=chbVisible, Path=IsChecked}" />
</dxc:LineSeries2D.Label>
<dxc:LineSeries2D.Points>
<dxc:SeriesPoint Argument="1950" Value="227" />
<dxc:SeriesPoint Argument="1960" Value="283" />
<dxc:SeriesPoint Argument="1970" Value="361" />
<dxc:SeriesPoint Argument="1980" Value="471" />
<dxc:SeriesPoint Argument="1990" Value="623" />
<dxc:SeriesPoint Argument="2000" Value="797" />
<dxc:SeriesPoint Argument="2010" Value="982" />
<dxc:SeriesPoint Argument="2020" Value="1189" />
<dxc:SeriesPoint Argument="2030" Value="1416" />
<dxc:SeriesPoint Argument="2040" Value="1665" />
<dxc:SeriesPoint Argument="2050" Value="1937" />
</dxc:LineSeries2D.Points>
</dxc:LineSeries2D>
</dxc:XYDiagram2D.Series>
</dxc:XYDiagram2D>
</dxc:ChartControl.Diagram>
<dxc:ChartControl.Titles>
<dxc:Title Dock="Top" HorizontalAlignment="Center" Content="Historic, Current and Future Population" />
<dxc:Title Dock="Bottom" HorizontalAlignment="Right" FontSize="12" Foreground="Silver" Margin="0,10,0,0" Content="From www.geohive.com" />
</dxc:ChartControl.Titles>
</dxc:ChartControl>
</Grid>
</dxdb:DemoModuleControl>
</local:ChartsDemoModule>