using System;using System.Linq;using System.Windows;using System.Windows.Controls;using LiveCharts;using LiveCharts.Defaults;using LiveCharts.Wpf;namespace Wpf.CartesianChart.Bubbles
{publicpartialclassBubblesExample:UserControl{publicBubblesExample(){InitializeComponent();
SeriesCollection =newSeriesCollection{newScatterSeries{
Values =newChartValues<ScatterPoint>{newScatterPoint(5,5,20),newScatterPoint(3,4,80),newScatterPoint(7,2,20),newScatterPoint(2,6,60),newScatterPoint(8,2,70)},
MinPointShapeDiameter =15,
MaxPointShapeDiameter =45},newScatterSeries{
Values =newChartValues<ScatterPoint>{newScatterPoint(7,5,1),newScatterPoint(2,2,1),newScatterPoint(1,1,1),newScatterPoint(6,3,1),newScatterPoint(8,8,1)},
PointGeometry = DefaultGeometries.Triangle,
MinPointShapeDiameter =15,
MaxPointShapeDiameter =45}};
DataContext =this;}publicSeriesCollection SeriesCollection {get;set;}privatevoidUpdateAllOnClick(object sender,RoutedEventArgs e){var r =newRandom();foreach(var series in SeriesCollection){foreach(var bubble in series.Values.Cast<ScatterPoint>()){
bubble.X = r.NextDouble()*10;
bubble.Y = r.NextDouble()*10;
bubble.Weight = r.NextDouble()*10;}}}}}
前台
<UserControlx:Class="Wpf.CartesianChart.Bubbles.BubblesExample"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:local="clr-namespace:Wpf.CartesianChart"xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"mc:Ignorable="d"d:DesignHeight="300"d:DesignWidth="300"><Grid><Grid.RowDefinitions><RowDefinitionHeight="Auto"></RowDefinition><RowDefinitionHeight="*"></RowDefinition></Grid.RowDefinitions><ButtonGrid.Row="0"Click="UpdateAllOnClick">
Move All
</Button><lvc:CartesianChartGrid.Row="1"Series="{Binding SeriesCollection}"></lvc:CartesianChart></Grid></UserControl>