Rim in Xamarin Circular Gauge (SfCircularGauge)
11 Sep 20237 minutes to read
Scale determines the structure of a circular gauge by using the circular rim. By setting the StartAngle
and SweepAngle
properties, you can change the shape of the circular gauge into a full circular gauge, half circular gauge, or quarter circular gauge.
The StartValue
and EndValue
properties will determine the overall range of the circular rim.
<gauge:SfCircularGauge>
<gauge:SfCircularGauge.Scales>
<gauge:Scale StartAngle="270" SweepAngle="360" StartValue="0" EndValue="360" Interval="20" MinorTicksPerInterval="0" ShowFirstLabel="False"/>
</gauge:SfCircularGauge.Scales>
</gauge:SfCircularGauge>
SfCircularGauge circularGauge = new SfCircularGauge();
ObservableCollection<Scale> scales = new ObservableCollection<Scale>();
Scale scale = new Scale();
scale.StartAngle = 270;
scale.SweepAngle = 360;
scale.StartValue = 0;
scale.EndValue = 360;
scale.Interval = 20;
scale.MinorTicksPerInterval = 0;
scale.ShowFirstLabel = false;
scales.Add(scale);
circularGauge.Scales = scales;
Rim customization
The color and thickness of rim can be set by using the RimColor
and RimThickness
properties. To increase the RimThickness
, set the RadiusFactor
.
<gauge:SfCircularGauge>
<gauge:SfCircularGauge.Scales>
<gauge:Scale RadiusFactor="1" RimThickness="40" RimColor="SkyBlue" LabelOffset = "0.6">
<gauge:Scale.MajorTickSettings>
<gauge:TickSettings Offset = “0.75”/>
</gauge:Scale.MajorTickSettings>
<gauge:Scale.MinorTickSettings>
<gauge:TickSettings Offset = “0.75”/>
</gauge:Scale.MinorTickSettings>
</gauge:Scale>
</gauge:SfCircularGauge.Scales>
</gauge:SfCircularGauge>
SfCircularGauge circularGauge = new SfCircularGauge();
ObservableCollection<Scale> scales = new ObservableCollection<Scale>();
Scale scale = new Scale();
scale.RadiusFactor = 1;
scale.RimThickness = 40;
scale.LabelOffset = 0.6;
scale.MajorTickSettings.Offset = 0.75;
scale.MinorTickSettings.Offset = 0.75;
scale.RimColor = Color.SkyBlue;
scales.Add(scale);
circularGauge.Scales = scales;
Setting position for rim
You can customize the position and size of Scales
rim in the following two ways:
-
RadiusFactor
with theRimThickness
property - To applying rim size in logical pixels. - The
ScaleStartOffset
andScaleEndOffset
properties - To applying rim size in factor(0 to 1).
Setting radius factor for rim
This approach is used to define the rim size from its starting location in logical pixels. The RadiusFactor
property is used to define the start position of the scale rim in factor value (between 0 to 1). Rim position is determined by multiplying this factor value to the gauge circle radius size. The RimThickness
property is used to define the rim size in logical pixels.
<gauge:SfCircularGauge>
<gauge:SfCircularGauge.Scales>
<gauge:Scale RadiusFactor = "0.7" RimThickness = "30">
</gauge:Scale>
</gauge:SfCircularGauge.Scales>
</gauge:SfCircularGauge>
SfCircularGauge circularGauge = new SfCircularGauge();
ObservableCollection<Scale> scales = new ObservableCollection<Scale>();
Scale scale = new Scale();
scale.RadiusFactor = 0.7;
scale.RimThickness = 30;
scales.Add(scale);
circularGauge.Scales = scales;
Setting scale start and end offsets for rim
The ScaleStartOffset
and ScaleEndOffset
properties are used to define the scale rim position and size in the factor value (between 0 and 1) for the responsive size (size will be responsive in all the layout). Rim position and size is determined by multiplying this factor value to the radius size of the gauge circle.
<gauge:SfCircularGauge>
<gauge:SfCircularGauge.Scales>
<gauge:Scale ScaleStartOffset="0.6" ScaleEndOffset = "0.7">
</gauge:Scale>
</gauge:SfCircularGauge.Scales>
</gauge:SfCircularGauge>
SfCircularGauge circularGauge = new SfCircularGauge();
ObservableCollection<Scale> scales = new ObservableCollection<Scale>();
Scale scale = new Scale();
scale.ScaleStartOffset = 0.6;
scale.ScaleEndOffset = 0.7;
scales.Add(scale);
circularGauge.Scales = scales;
Show rim
The ShowRim
property is a Boolean property, which is used to enable or disable the rim in circular gauge.
<gauge:SfCircularGauge>
<gauge:SfCircularGauge.Scales>
<gauge:Scale ShowRim = "False">
</gauge:Scale>
</gauge:SfCircularGauge.Scales>
</gauge:SfCircularGauge>
SfCircularGauge circularGauge = new SfCircularGauge();
ObservableCollection<Scale> scales = new ObservableCollection<Scale>();
Scale scale = new Scale();
scale.ShowRim = false;
scales.Add(scale);
circularGauge.Scales = scales;
See Also
How to customize rim position for scale
How to achieve doughnut chart requirement in circular gauge
How to customize a circular gauge control as a time line gauge