Skip to content

beta.500

Pre-release
Pre-release
Compare
Choose a tag to compare
@beto-rodriguez beto-rodriguez released this 07 Oct 04:41
· 1372 commits to master since this release
30cfa86

What's new?

Conditional draw is back!

Conditional draw is back to v2! this was the last thing missing from v0 🚀, the library needed to mature to implement this, now it feels solid enough to add this feature.

In the following sample, we highlight the bars above 5.

conditional

// full code at 
// https://github.com/beto-rodriguez/LiveCharts2/blob/master/samples/ViewModelsSamples/General/ConditionalDraw/ViewModel.cs
var series1 = new ColumnSeries<ObservableValue>
{
    Name = "Mary",
    Values = new ObservableValue[] { ... }
}
.WithConditionalPaint(new SolidColorPaint(SKColors.Black.WithAlpha(50)))
.When(point => point.Model?.Value > 5);

Clockwise pies and gaunges

You can change the direction of a pie or a gauge using the PieChart.IsClockwise property, this sample has a cool bounce animation 😎

clockwise

Crosshair just works!

crosshair

// full code at:
// https://github.com/beto-rodriguez/LiveCharts2/blob/dev/samples/ViewModelsSamples/Axes/Style/ViewModel.cs

private static readonly SKColor s_crosshair = new(255, 171, 145);

public Axis[] XAxes { get; set; } =
{
    new Axis
    {
        CrosshairPaint = new SolidColorPaint
        {
            Color = s_crosshair,
            StrokeThickness = 3
        },
        CrosshairLabelsPaint = new SolidColorPaint
        {
            Color = SKColors.Black,
            SKFontStyle =  new SKFontStyle(SKFontStyleWeight.SemiBold, SKFontStyleWidth.Normal, SKFontStyleSlant.Upright),
        },
        CrosshairLabelsBackground = s_crosshair.AsLvcColor(),
        CrosshairPadding = new Padding(10, 20, 10, 10)
    }
};

Fonts are flexible now

Now we can style fonts, bold, italics, fonts and more.

image

// full code at:
// https://github.com/beto-rodriguez/LiveCharts2/blob/dev/samples/ViewModelsSamples/Axes/LabelsFormat/ViewModel.cs
public Axis[] XAxes { get; set; } =
{
    new Axis
    {
        Name = "Salesman/woman",
        Labels = new string[] { "王", "赵", "张" },
        LabelsPaint = new SolidColorPaint
        {
            Color = SKColors.Black,
            //  now the library exposes the SKTypeface on paint objects.
            SKTypeface = SKFontManager.Default.MatchCharacter('汉')
        }
    }
};

public Axis[] YAxes { get; set; } =
{
    new Axis
    {
        Name = "Sales amount",
        NamePadding = new LiveChartsCore.Drawing.Padding(0, 15),
        Labeler = Labelers.Currency,
        LabelsPaint = new SolidColorPaint
        {
            Color = SKColors.Blue,
            FontFamily = "Times New Roman",
            SKFontStyle = new SKFontStyle(SKFontStyleWeight.ExtraBold, SKFontStyleWidth.Normal, SKFontStyleSlant.Italic)
        },
    }
};

We can now set titles to charts.

In this sample we place a LabelVisual, but you can place any visual actually, this is specially useful to generate images with the library where you do not have a UI to set a title.

image

// full code:
// view:              https://github.com/beto-rodriguez/LiveCharts2/blob/master/samples/WPFSample/Lines/Basic/View.xaml
// viewmodel:    https://github.com/beto-rodriguez/LiveCharts2/blob/master/samples/ViewModelsSamples/Lines/Basic/ViewModel.cs

public LabelVisual Title { get; set; } =
    new LabelVisual
    {
        Text = "My chart title",
        TextSize = 25,
        Padding = new LiveChartsCore.Drawing.Padding(15),
        Paint = new SolidColorPaint(SKColors.DarkSlateGray)
    };

There is now an easy way to control the max zoom level of a chart.

see #630 for more info.

Fixed issues

Full Changelog: v2.0.0-beta.400...beta.500