Skip to content

Commit e228f9d

Browse files
Merge pull request #1954 from beto-rodriguez/clipping-improvements
Clipping improvements
2 parents b9cf648 + b8046fc commit e228f9d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+483
-546
lines changed

samples/AvaloniaSample/Axes/Style/View.axaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
NamePaint="{lvc:SolidColorPaint
3939
Color={StaticResource gray1}}"
4040
TextSize="18"
41-
Padding="{lvc:Padding '5,15,5,5'}"
4241
LabelsPaint="{lvc:SolidColorPaint
4342
Color={StaticResource gray}}"
4443
SeparatorsPaint="{lvc:SolidColorPaint
@@ -66,7 +65,6 @@
6665
NamePaint="{lvc:SolidColorPaint
6766
Color={StaticResource gray1}}"
6867
TextSize="18"
69-
Padding="{lvc:Padding '5,15,5,5'}"
7068
LabelsPaint="{lvc:SolidColorPaint
7169
Color={StaticResource gray}}"
7270
SeparatorsPaint="{lvc:SolidColorPaint

samples/BlazorSample/Pages/Axes/Style.razor

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@
6262
Name = "X Axis",
6363
NamePaint = new SolidColorPaint(gray1),
6464
TextSize = 18,
65-
Padding = new LiveChartsCore.Drawing.Padding(5, 15, 5, 5),
6665
LabelsPaint = new SolidColorPaint(gray),
6766
SeparatorsPaint = new SolidColorPaint(gray, 1) { PathEffect = dashEffect },
6867
SubseparatorsPaint = new SolidColorPaint(gray2, 0.5f),
@@ -79,7 +78,6 @@
7978
Name = "Y Axis",
8079
NamePaint = new SolidColorPaint(gray1),
8180
TextSize = 18,
82-
Padding = new LiveChartsCore.Drawing.Padding(5, 15, 5, 5),
8381
LabelsPaint = new SolidColorPaint(gray),
8482
SeparatorsPaint = new SolidColorPaint(gray, 1) { PathEffect = dashEffect },
8583
SubseparatorsPaint = new SolidColorPaint(gray2, 0.5f),

samples/EtoFormsSample/Axes/Style/View.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ public View()
4848
Name = "X Axis",
4949
NamePaint = new SolidColorPaint(gray1),
5050
TextSize = 18,
51-
Padding = new LiveChartsCore.Drawing.Padding(5, 15, 5, 5),
5251
LabelsPaint = new SolidColorPaint(gray),
5352
SeparatorsPaint = new SolidColorPaint(gray, 1) { PathEffect = dashEffect },
5453
SubseparatorsPaint = new SolidColorPaint(gray2, 0.5f),
@@ -62,7 +61,6 @@ public View()
6261
Name = "Y Axis",
6362
NamePaint = new SolidColorPaint(gray1),
6463
TextSize = 18,
65-
Padding = new LiveChartsCore.Drawing.Padding(5, 15, 5, 5),
6664
LabelsPaint = new SolidColorPaint(gray),
6765
SeparatorsPaint = new SolidColorPaint(gray, 1) { PathEffect = dashEffect },
6866
SubseparatorsPaint = new SolidColorPaint(gray2, 0.5f),

samples/MauiSample/Axes/Style/View.xaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
NamePaint="{lvc:SolidColorPaint
4040
Color={StaticResource gray1}}"
4141
TextSize="18"
42-
Padding="5,15,5,5"
4342
LabelsPaint="{lvc:SolidColorPaint
4443
Color={StaticResource gray}}"
4544
SeparatorsPaint="{lvc:SolidColorPaint
@@ -67,7 +66,6 @@
6766
NamePaint="{lvc:SolidColorPaint
6867
Color={StaticResource gray1}}"
6968
TextSize="18"
70-
Padding="5,15,5,5"
7169
LabelsPaint="{lvc:SolidColorPaint
7270
Color={StaticResource gray}}"
7371
SeparatorsPaint="{lvc:SolidColorPaint

samples/ViewModelsSamples/Index.cs

Lines changed: 85 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -4,91 +4,91 @@ public static class Index
44
{
55
public static string[] Samples =
66
[
7-
//"Design/LinearGradients",
8-
//"Design/RadialGradients",
9-
//"Design/StrokeDashArray",
10-
11-
//"Lines/Basic",
12-
//"Lines/AutoUpdate",
13-
//"Lines/Straight",
14-
//"Lines/Properties",
15-
//"Lines/Area",
16-
//"Lines/Custom",
17-
//"Lines/CustomPoints",
18-
//"Lines/Padding",
19-
//"Lines/XY",
20-
//"Lines/Zoom",
21-
22-
//"Bars/Basic",
23-
//"Bars/AutoUpdate",
24-
//"Bars/Custom",
25-
//"Bars/WithBackground",
26-
//"Bars/Spacing",
27-
//"Bars/DelayedAnimation",
28-
//"Bars/Race",
29-
//"Bars/RowsWithLabels",
30-
//"Bars/Layered",
31-
32-
//"Pies/Basic",
33-
//"Pies/AutoUpdate",
34-
//"Pies/Doughnut",
35-
//"Pies/Pushout",
36-
//"Pies/Nested",
37-
//"Pies/Custom",
38-
//"Pies/Icons",
39-
//"Pies/OutLabels",
40-
//"Pies/NightingaleRose",
41-
////"Pies/Gauges",
42-
////"Pies/Gauge",
43-
//"Pies/Gauge1",
44-
//"Pies/Gauge2",
45-
//"Pies/Gauge3",
46-
//"Pies/Gauge4",
47-
//"Pies/Gauge5",
48-
//"Pies/AngularGauge",
49-
50-
//"Scatter/Basic",
51-
//"Scatter/Bubbles",
52-
//"Scatter/AutoUpdate",
53-
//"Scatter/Custom",
54-
55-
//"StackedArea/Basic",
56-
//"StackedArea/StepArea",
57-
58-
//"StackedBars/Basic",
59-
//"StackedBars/Groups",
60-
61-
//"Financial/BasicCandlesticks",
62-
63-
//"Error/Basic",
64-
65-
//"Box/Basic",
66-
67-
//"Heat/Basic",
68-
69-
//"StepLines/Basic",
70-
//"StepLines/AutoUpdate",
71-
//"StepLines/Properties",
72-
//"StepLines/Area",
73-
//"StepLines/Custom",
74-
//"StepLines/Zoom",
75-
76-
//"Polar/Basic",
77-
//"Polar/RadialArea",
78-
//"Polar/Coordinates",
79-
80-
//"Axes/LabelsFormat",
81-
//"Axes/LabelsFormat2",
82-
//"Axes/NamedLabels",
83-
//"Axes/LabelsRotation",
84-
//"Axes/Multiple",
85-
//"Axes/Shared",
86-
//"Axes/ColorsAndPosition",
87-
//"Axes/Crosshairs",
88-
//"Axes/CustomSeparatorsInterval",
89-
//"Axes/DateTimeScaled",
90-
//"Axes/TimeSpanScaled",
91-
//"Axes/Logarithmic",
7+
"Design/LinearGradients",
8+
"Design/RadialGradients",
9+
"Design/StrokeDashArray",
10+
11+
"Lines/Basic",
12+
"Lines/AutoUpdate",
13+
"Lines/Straight",
14+
"Lines/Properties",
15+
"Lines/Area",
16+
"Lines/Custom",
17+
"Lines/CustomPoints",
18+
"Lines/Padding",
19+
"Lines/XY",
20+
"Lines/Zoom",
21+
22+
"Bars/Basic",
23+
"Bars/AutoUpdate",
24+
"Bars/Custom",
25+
"Bars/WithBackground",
26+
"Bars/Spacing",
27+
"Bars/DelayedAnimation",
28+
"Bars/Race",
29+
"Bars/RowsWithLabels",
30+
"Bars/Layered",
31+
32+
"Pies/Basic",
33+
"Pies/AutoUpdate",
34+
"Pies/Doughnut",
35+
"Pies/Pushout",
36+
"Pies/Nested",
37+
"Pies/Custom",
38+
"Pies/Icons",
39+
"Pies/OutLabels",
40+
"Pies/NightingaleRose",
41+
//"Pies/Gauges",
42+
//"Pies/Gauge",
43+
"Pies/Gauge1",
44+
"Pies/Gauge2",
45+
"Pies/Gauge3",
46+
"Pies/Gauge4",
47+
"Pies/Gauge5",
48+
"Pies/AngularGauge",
49+
50+
"Scatter/Basic",
51+
"Scatter/Bubbles",
52+
"Scatter/AutoUpdate",
53+
"Scatter/Custom",
54+
55+
"StackedArea/Basic",
56+
"StackedArea/StepArea",
57+
58+
"StackedBars/Basic",
59+
"StackedBars/Groups",
60+
61+
"Financial/BasicCandlesticks",
62+
63+
"Error/Basic",
64+
65+
"Box/Basic",
66+
67+
"Heat/Basic",
68+
69+
"StepLines/Basic",
70+
"StepLines/AutoUpdate",
71+
"StepLines/Properties",
72+
"StepLines/Area",
73+
"StepLines/Custom",
74+
"StepLines/Zoom",
75+
76+
"Polar/Basic",
77+
"Polar/RadialArea",
78+
"Polar/Coordinates",
79+
80+
"Axes/LabelsFormat",
81+
"Axes/LabelsFormat2",
82+
"Axes/NamedLabels",
83+
"Axes/LabelsRotation",
84+
"Axes/Multiple",
85+
"Axes/Shared",
86+
"Axes/ColorsAndPosition",
87+
"Axes/Crosshairs",
88+
"Axes/CustomSeparatorsInterval",
89+
"Axes/DateTimeScaled",
90+
"Axes/TimeSpanScaled",
91+
"Axes/Logarithmic",
9292
"Axes/Style",
9393
"Axes/MatchScale",
9494
"Axes/Paging",

samples/WPFSample/Axes/Style/View.xaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
AxisName="X Axis"
4343
NamePaint="{lvc:SolidColorPaint Color={StaticResource gray1}}"
4444
TextSize="18"
45-
Padding="5,15,5,5"
4645
LabelsPaint="{lvc:SolidColorPaint Color={StaticResource gray}}"
4746
SeparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=1}"
4847
SubseparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray2}, StrokeWidth=0.5}"
@@ -59,7 +58,6 @@
5958
AxisName="Y Axis"
6059
NamePaint="{lvc:SolidColorPaint Color={StaticResource gray1}}"
6160
TextSize="18"
62-
Padding="5,15,5,5"
6361
LabelsPaint="{lvc:SolidColorPaint Color={StaticResource gray}}"
6462
SeparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray}, StrokeWidth=1}"
6563
SubseparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray2}, StrokeWidth=0.5}"

samples/WinFormsSample/Axes/Style/View.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ public View()
5454
Name = "X Axis",
5555
NamePaint = new SolidColorPaint(gray1),
5656
TextSize = 18,
57-
Padding = new LiveChartsCore.Drawing.Padding(5, 15, 5, 5),
5857
LabelsPaint = new SolidColorPaint(gray),
5958
SeparatorsPaint = new SolidColorPaint(gray, 1) { PathEffect = dashEffect },
6059
SubseparatorsPaint = new SolidColorPaint(gray2, 0.5f),
@@ -68,7 +67,6 @@ public View()
6867
Name = "Y Axis",
6968
NamePaint = new SolidColorPaint(gray1),
7069
TextSize = 18,
71-
Padding = new LiveChartsCore.Drawing.Padding(5, 15, 5, 5),
7270
LabelsPaint = new SolidColorPaint(gray),
7371
SeparatorsPaint = new SolidColorPaint(gray, 1) { PathEffect = dashEffect },
7472
SubseparatorsPaint = new SolidColorPaint(gray2, 0.5f),

samples/WinUISample/WinUISample/Samples/Axes/Style/View.xaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
AxisName="X Axis"
4646
NamePaint="{lvc:SolidColorPaint Color={StaticResource gray1}}"
4747
TextSize="18"
48-
Padding="{lvc:Padding Value='5,15,5,5'}"
4948
LabelsPaint="{lvc:SolidColorPaint Color={StaticResource gray}}"
5049

5150
SubseparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray2}, StrokeWidth=0.5}"
@@ -66,7 +65,6 @@
6665
AxisName="Y Axis"
6766
NamePaint="{lvc:SolidColorPaint Color={StaticResource gray1}}"
6867
TextSize="18"
69-
Padding="{lvc:Padding Value='5,15,5,5'}"
7068
LabelsPaint="{lvc:SolidColorPaint Color={StaticResource gray}}"
7169

7270
SubseparatorsPaint="{lvc:SolidColorPaint Color={StaticResource gray2}, StrokeWidth=0.5}"

src/LiveChartsCore/CartesianChartEngine.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -760,6 +760,8 @@ protected internal override void Measure()
760760
// the probable issue is the "IsVisible" property
761761
}
762762

763+
RegisterClipZones();
764+
763765
// we draw all the series even invisible because it animates the series when hidden.
764766
// Sections and Visuals are not animated when hidden, thus we just skip them.
765767
// it means that invisible series have a performance impact, it should not be a big deal
@@ -1171,6 +1173,21 @@ private void PanAxis(ICartesianAxis axis, ZoomAndPanMode flags, float delta, boo
11711173
axis.SetLimits(min, max);
11721174
}
11731175

1176+
private void RegisterClipZones()
1177+
{
1178+
var size = ControlSize;
1179+
1180+
var x = DrawMarginLocation.X;
1181+
var y = DrawMarginLocation.Y;
1182+
var w = DrawMarginSize.Width;
1183+
var h = DrawMarginSize.Height;
1184+
1185+
Canvas.Zones[CanvasZone.NoClip].Clip = LvcRectangle.Empty;
1186+
Canvas.Zones[CanvasZone.DrawMargin].Clip = new(new(x, y), new(w, h));
1187+
Canvas.Zones[CanvasZone.XCrosshair].Clip = new(new(x, 0), new(w, size.Height));
1188+
Canvas.Zones[CanvasZone.YCrosshair].Clip = new(new(0, y), new(size.Width, h));
1189+
}
1190+
11741191
private double GetThreshold(ICartesianAxis axis, Scaler scale)
11751192
{
11761193
var bouncingDistancePixels = axis.Orientation == AxisOrientation.X

src/LiveChartsCore/CartesianSeries.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -217,14 +217,6 @@ public virtual SeriesBounds GetBounds(
217217
return label;
218218
}
219219

220-
/// <summary>
221-
/// Gets the clip rectangle for the series.
222-
/// </summary>
223-
/// <param name="cartesianChart">The cartesian chart.</param>
224-
/// <returns></returns>
225-
protected virtual LvcRectangle GetClipRectangle(CartesianChartEngine cartesianChart) =>
226-
Clipping.GetClipRectangle(ClippingMode, cartesianChart);
227-
228220
/// <summary>
229221
/// Gets the geometry size to calculate the series bounds.
230222
/// </summary>

0 commit comments

Comments
 (0)