Shape Marker Pointer in .NET MAUI Linear Gauge (SfLinearGauge)
8 Apr 202210 minutes to read
The LinearShapePointer
in SfLinearGauge
have the following pre-defined shapes to mark a specific value. The default shape pointer is InvertedTriangle
.
The following is the default appearance of default shape pointer.
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MarkerPointers>
<gauge:LinearShapePointer Value="50"/>
</gauge:SfLinearGauge.MarkerPointers>
</gauge:SfLinearGauge>
SfLinearGauge gauge = new SfLinearGauge();
gauge.MarkerPointers.Add(new LinearShapePointer()
{
Value = 50,
});
this.Content = gauge;
Change the size
The size of the marker pointer can be changed by the ShapeHeight
and ShapeWidth
properties of LinearShapePointer
. The following code sample demonstrates how to change the size of a shape pointer.
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MarkerPointers>
<gauge:LinearShapePointer Value="50" ShapeHeight="25"
ShapeWidth="25"/>
</gauge:SfLinearGauge.MarkerPointers>
</gauge:SfLinearGauge>
SfLinearGauge gauge = new SfLinearGauge();
gauge.MarkerPointers.Add(new LinearShapePointer()
{
Value = 50,
ShapeHeight = 25,
ShapeWidth = 25,
});
this.Content = gauge;
Customize color
The color of the shape pointer can be changed by the Fill
property. The following code example demonstrates the same.
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MarkerPointers>
<gauge:LinearShapePointer Value="50" Fill="Red"/>
</gauge:SfLinearGauge.MarkerPointers>
</gauge:SfLinearGauge>
SfLinearGauge gauge = new SfLinearGauge();
gauge.MarkerPointers.Add(new LinearShapePointer()
{
Value = 50,
Fill=new SolidColorBrush(Colors.Red)
});
this.Content = gauge;
Customize the border
The border can be customized by the Stroke
and StrokeThickness
properties of the LinearShapePointer
.
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MarkerPointers>
<gauge:LinearShapePointer Value="50"
StrokeThickness="2"
Stroke="Red"/>
</gauge:SfLinearGauge.MarkerPointers>
</gauge:SfLinearGauge>
SfLinearGauge gauge = new SfLinearGauge();
gauge.MarkerPointers.Add(new LinearShapePointer()
{
Value = 50,
StrokeThickness = 2,
Stroke = Colors.Red
});
this.Content = gauge;
Shadow support
The shadow can be applied by the HasShadow
property.
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MarkerPointers>
<gauge:LinearShapePointer Value="50" ShapeType="Circle"
HasShadow="True"/>
</gauge:SfLinearGauge.MarkerPointers>
</gauge:SfLinearGauge>
SfLinearGauge gauge = new SfLinearGauge();
gauge.MarkerPointers.Add(new LinearShapePointer()
{
Value = 50,
ShapeType = ShapeType.Circle,
HasShadow = true,
});
this.Content = gauge;
Change marker alignment
The marker pointer alignment can be changed by the Alignment
property of LinearShapePointer
. The available marker pointer alignments are Start
, End
, and Center
.
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MarkerPointers>
<gauge:LinearShapePointer Value="50" ShapeType="Rectangle"
Alignment="End" OffsetY="-5"/>
</gauge:SfLinearGauge.MarkerPointers>
</gauge:SfLinearGauge>
SfLinearGauge gauge = new SfLinearGauge();
gauge.MarkerPointers.Add(new LinearShapePointer()
{
Value = 50,
ShapeType = ShapeType.Rectangle,
OffsetY = -5,
Alignment = GaugeAlignment.End
});
this.Content = gauge;
Customize position
By default, the shape pointer is positioned Outside
the scale. This position can be changed by the Position
property of pointer. It is possible to position the shape pointer Inside
, Cross
, or Outside
the scale. The following code sample demonstrates how to change the shape pointer position to inside the scale.
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MarkerPointers>
<gauge:LinearShapePointer Value="50" ShapeType="Circle"
Position="Cross" Fill="Blue"/>
</gauge:SfLinearGauge.MarkerPointers>
</gauge:SfLinearGauge>
SfLinearGauge gauge = new SfLinearGauge();
gauge.MarkerPointers.Add(new LinearShapePointer()
{
Value = 50,
ShapeType = ShapeType.Circle,
Position=GaugeElementPosition.Cross,
Fill=new SolidColorBrush(Colors.Blue),
});
this.Content = gauge;
Customize offset
In addition to position the shape pointer, it is also possible to change the offset of the shape pointer. The OffsetX
and OffsetY
are the distance from the scale and the cross positioned elements will not get affected by the OffsetX
and OffsetY
values. The following code sample demonstrates how to change the OffsetX
and OffsetY
values of the shape pointer.
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MarkerPointers>
<gauge:LinearShapePointer Value="50" ShapeType="Triangle"
Position="Inside" OffsetY="25"/>
</gauge:SfLinearGauge.MarkerPointers>
</gauge:SfLinearGauge>
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MarkerPointers>
<gauge:LinearShapePointer Value="50" ShapeType="Triangle" Position="Inside" OffsetY="25"/>
</gauge:SfLinearGauge.MarkerPointers>
</gauge:SfLinearGauge>