Axis Style
This sample uses C# 13 preview features such as partial properties, it also uses features from the CommunityToolkit.Mvvm package, you can learn more about it here.
This web site wraps every sample using a UserControl instance, but LiveCharts controls can be used inside any container.
View model
using System.Collections.Generic;
using LiveChartsCore;
using LiveChartsCore.Defaults;
namespace ViewModelsSamples.Axes.Style;
public class ViewModel
{
public ObservablePoint[] Values { get; set; } = Fetch();
private static ObservablePoint[] Fetch()
{
var list = new List<ObservablePoint>();
var fx = EasingFunctions.BounceInOut;
for (var x = 0f; x < 1f; x += 0.001f)
{
var y = fx(x);
list.Add(new()
{
X = x - 0.5,
Y = y - 0.5
});
}
return [.. list];
}
}
XAML
<UserControl
x:Class="WPFSample.Axes.Style.View"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF"
xmlns:vms="clr-namespace:ViewModelsSamples.Axes.Style;assembly=ViewModelsSamples"
>
<UserControl.DataContext>
<vms:ViewModel/>
</UserControl.DataContext>
<UserControl.Resources>
<sys:String x:Key="gray">#c3c3c3</sys:String>
<sys:String x:Key="gray1">#a0a0a0</sys:String>
<sys:String x:Key="gray2">#5a5a5a</sys:String>
<sys:String x:Key="gray3">#3c3c3c</sys:String>
</UserControl.Resources>
<lvc:CartesianChart
Background="#303030"
Margin="20"
DrawMarginFrame="{lvc:Frame Stroke={lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=2}}"
ZoomMode="Both"
TooltipPosition="Hidden">
<lvc:CartesianChart.Series>
<lvc:SeriesCollection>
<lvc:XamlLineSeries
Values="{Binding Values}"
Stroke="{lvc:SolidColorPaint Color='#2196F3', StrokeWidth=4}"
Fill="{x:Null}"
GeometryFill="{x:Null}"
GeometryStroke="{x:Null}"/>
</lvc:SeriesCollection>
</lvc:CartesianChart.Series>
<lvc:CartesianChart.XAxes>
<lvc:AxesCollection>
<lvc:XamlAxis
AxisName="X Axis"
NamePaint="{lvc:SolidColorPaint Color={StaticResource gray1}}"
TextSize="18"
LabelsPaint="{lvc:SolidColorPaint Color={StaticResource gray}}"
SeparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=1}"
SubseparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray2}, StrokeWidth=0.5}"
SubseparatorsCount="9"
ZeroPaint="{lvc:SolidColorPaint Color={StaticResource gray1}, StrokeWidth=2}"
TicksPaint="{lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=1.5}"
SubticksPaint="{lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=1}"/>
</lvc:AxesCollection>
</lvc:CartesianChart.XAxes>
<lvc:CartesianChart.YAxes>
<lvc:AxesCollection>
<lvc:XamlAxis
AxisName="Y Axis"
NamePaint="{lvc:SolidColorPaint Color={StaticResource gray1}}"
TextSize="18"
LabelsPaint="{lvc:SolidColorPaint Color={StaticResource gray}}"
SeparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=1}"
SubseparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray2}, StrokeWidth=0.5}"
SubseparatorsCount="9"
ZeroPaint="{lvc:SolidColorPaint Color={StaticResource gray1}, StrokeWidth=2}"
TicksPaint="{lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=1.5}"
SubticksPaint="{lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=1}"/>
</lvc:AxesCollection>
</lvc:CartesianChart.YAxes>
</lvc:CartesianChart>
</UserControl>