Version

Configuring Graph Scale

Purpose

This topic explains, with examples, how to customize the scale of the XamBulletGraph™ control. This includes positioning the scale inside the control and configuring the scale tick marks and labels. (For the default settings, see the XamBulletGraph Overview topic.)

Required background

The following topics are prerequisites to understanding this topic:

Topic Purpose

This topic provides conceptual information about the XamBulletGraph control including its main features, minimum requirements, and user functionality.

This topic explains how to add the XamBulletGraph control to a Xamarin.Forms application.

Introduction

Scale configuration summary

The scale of the XamBulletGraph control is a logical entity formed by the tick marks and the numbered labels. The size and position of the tick marks is configured relative to the Graph area and the position of the numbered labels – relative to the inner edge of the control (the bottom edge at horizontal orientation).

The tick marks of the XamBulletGraph control identify equal intervals of measure along the graph. Two types of tick marks are supported – major and minor. Both can be positioned along the scale by adjusting the values of the respective extent-related properties which are measured against the Graph area. The tick marks’ exact count, position, look, and frequency of occurrence can be customized by property settings.

As far as the labels are concerned, various aspects of them can be configured such as position, text, format, etc.

Scale configuration summary chart

The following table explains briefly the configurable aspects of XamBulletGraph control’s scale and maps them to properties that configure them.

Configurable aspects Property Default value

Position

0.05

0.95

Background

Defined in the default theme

Defined in the default theme

1.0

Min value

0

Max value

100

Major tick marks

0

0

0

0.06

0.2

Defined in the default theme

2.0

Minor tick marks

3.0

0.1

0.2

Defined in the default theme

1.0

Labels

0

0

0

0

Defined in the default theme

Configuring the Scale’s Size and Position

Overview

The scale’s size and position within the XamBulletGraph control in the along-the scale-dimension is determined relative to the Graph area. This is done through a pair of properties ( ScaleStartExtent and ScaleEndExtent).

BulletGraph Configuring the Scale 1.png

The positioning of the scale in the other (across-the-scale) dimension of the Graph area is not configurable by itself; instead, all elements comprising the scale are configured individually.

Note
Note

The value of the LabelExtent property, which controls the positioning of the numbering labels, is measured relative to the height of the control when its orientation is horizontal and to its width otherwise. (For details, see Configuring Orientation and Direction.)

Property settings

The following table maps the desired behavior to its respective property settings. For an illustration of the configurable aspects, see the Example.

In order to configure: Details Use this property: And set it to:

Starting position

The starting position of the scale relative to the left edge of the Graph area at horizontal orientation or to the bottom edge at vertical orientation. (When the direction of the scale is inverted, these become, respectively, the right edge at horizontal orientation and top edge at vertical orientation. For details, see Configuring the Orientation and Direction.)

The desired value as a relative part the width/height of the control (depending on the orientation) presented as a fraction of 1 (e.g. 0.2 )

Ending position

The ending position of the scale relative to the left edge of the Graph area relative to the left edge of the control in horizontal orientation or to the bottom edge in vertical orientation.

(When the direction of the scale is inverted, these become, respectively, the right edge at horizontal orientation and top edge at vertical orientation. For details, see Configuring the Orientation and Direction.)

The desired value as a relative part the width/height of the control width/height (depending on the orientation) presented as a fraction of 1 (e.g. 0. 8 )

Example

The screenshot below demonstrates how the XamBulletGraph would look as a result of the following settings:

Property Value

ScaleStartExtent

0.2

ScaleEndExtent

0.9

BulletGraph Configuring the Scale 2.png

Following is the code that implements this example.

In XAML:

<ig:XamBulletGraph x:Name="bulletGraph"
                 ScaleStartExtent="0.2"
                 ScaleEndExtent="0.9"  />

In C#:

bulletGraph.ScaleStartExtent = .2;
bulletGraph.ScaleEndExtent = .9;

Configuring the Scale’s Range

Overview

The values of the scale are defined by specifying its value range, that is, its minimum and maximum values. This is done with the MinimumValue and MaximumValue properties.

Setting the minimum and maximum values implicitly defines all values within the scale; all values are placed in even distribution between the minimum and maximum values. However, only those values are displayed for which there is a numbered label, placed on the scale. (The scale’s values can be displayed only through the numbered labels. The labels display the respective values based on the label’s position on the scale, i.e. the labels’ values are configured through the positioning of the labels along the scale and not set explicitly.) There is no requirement to have labels at the positions of the minimum and maximum values which means that the minimum and maximum values may not be indicated visually on the scale and the scale can look something like this:

BulletGraph Configuring the Scale 3.png

Having the scale’s range defined also enables the positioning of the other value-based visual elements on the scale, namely the comparative ranges, comparative marker, and the performance bar. Note that because these elements are value-based, when the scale’s range changes (i.e. when either its minimum or maximum value (or both) changes), these visual elements are re-positioned spatially together with the scale’s values keeping their position on the scale.

Property settings

The following table maps the desired behavior to its respective property settings. For an illustration of the configurable aspects, see the Example.

In order to configure: Details Use this property: And set it to:

The minimum value of the scale

The value at which the scale starts.

The desired value in the measures of the scale

The maximum value of the scale

The value at which the scale ends.

The desired value in the measures of the scale

Example

The screenshot below demonstrates how the XamBulletGraph would look as a result of the following settings:

Property Value

MinimumValue

60

MaximumValue

70

BulletGraph Configuring the Scale 4.png

Following is the code that implements this example.

In XAML:

<ig:XamBulletGraph
          MinimumValue="60"
          MaximumValue="70" />

In C#:

bulletGraph.MaximumValue = 70;
bulletGraph.MinimumValue = 60;

Configuring the Scale’s Major Tick Marks

Overview

The major tick marks of the XamBulletGraph control can be customized in terms of position and interval at which they occur. The height, thickness, and color of the line segments that forms the major tick marks are configurable as well.

Configuring the position along the scale, count, and spacing

The major tick marks are defined in terms of starting and ending points (the positions of the first and the last tick marks relative to the edges of the Graph area and the interval (the distance from each other) at which they occur. (This is done through the TicksPostInitial, TicksPreTerminal, and Interval properties.) This way, defining the starting and ending points of the major tick marks essentially defines the position and length of the scale.

BulletGraph Configuring the Scale 5.png

Configuring the position across the scale and the length of the segments

In the across-the-scale dimension, the length and position of the line segments that form the major tick marks is configured relative to the edges of the Graph area. (This is done through the TickStartExtent and TickEndExtent properties.)

BulletGraph Configuring the Scale 6.png

Property settings

The following table maps the desired behavior to its respective property settings. For an illustration of the configurable aspects, see the Example.

In order to configure: Details Use this property: And set it to:

Position along the scale, count, and spacing

Starting point

The distance at which the major tick marks begin relative to the starting position of the scale

The desired distance (in the measures of the scale) from scale start position

Ending point

The distance at which the major tick marks end relative to the ending position of the scale

The desired distance (in the measures of the scale) from the scale end position

Interval

The interval at which to place the major tick marks (Interval is the distance – in the measures of the scale – between two adjacent major tick marks.)

The desired value in measures of the scale

Position across the scale and length of the segments

Starting point

The starting point of the line segments that form the major tick marks.

(The starting point is defined relative to the bottom of the Graph area in horizontal orientation or to the left edge of the Graph area in vertical orientation.)

Negative values are supported as well, indicating positions beneath/ on the left of the Graph area.

The desired value (in the measures of the scale) as a relative part the height/width of the Graph area (depending on the orientation) presented as a fraction of 1 (e.g. 0.2 )

Ending point

The ending point of the line segments that form major tick marks relative to the bottom of the Graph area in horizontal orientation or to the left border of the Graph area in vertical orientation.

Negative values are supported as well, indicating positions beneath/ on the left of the Graph area.

(The difference between the starting and the ending points forms the length of the marks’ line segments.)

The desired value as a relative part the height/width of the Graph area (depending on the orientation) presented as a fraction of 1 (e.g. 0. 8 )

Look-and-feel

Thickness

The thickness of the major tick marks’ line segments.

The desired value in pixels

Color

The color of the major tick marks

The desired color

Example

The screenshot below demonstrates how the XamBulletGraph looks as a result of the following settings:

BulletGraph Configuring the Scale 7.png

Following is the code that implements this example.

In XAML:

<ig:XamBulletGraph Interval="30"
                 TickBrush="Lime"
                 TickEndExtent="0.9"
                 TicksPostInitial="30"
                 TicksPreTerminal="10"
                 TickStartExtent="0.5"
                 TickStrokeThickness="3" />

In C#:

bulletGraph.Interval = 30;
bulletGraph.TickBrush = new SolidColorBrush(Color.Lime);
bulletGraph.TickEndExtent = .9;
bulletGraph.TicksPostInitial = 30;
bulletGraph.TicksPreTerminal = 10;
bulletGraph.TickStartExtent = .5;
bulletGraph.TickStrokeThickness = 3;

Configuring the Scale’s Minor Tick Marks

Overview

The minor tick marks of the XamBulletGraph control can be explicitly disabled or customized in terms of number (between two major tick marks), positioning, size, and color.

Configuring the position along the scale, count, and spacing

The minor tick marks are defined as a count (the number of minor tick marks between two adjacent major tick marks). This is done through the MinorTickCount property; setting this property to 0 disables (hides) the minor tick marks. When the count is set, the specified number of minor tick marks is placed evenly between every two adjacent major tick marks, from the first one to the last.

Configuring the position across the scale and the length of the segments

In the across-the-scale dimension, the minor tick marks length and position is configured relative to the edges of the Graph area.

BulletGraph Configuring the Scale 8.png

Property settings

The following table maps the desired behavior to its respective property settings. For an illustration of the configurable aspects, see the Example.

In order to configure: Details Use this property: And set it to:

Number and spacing

The number of minor tick marks between two adjacent major tick marks.

The desired number; setting of 0 hides the minor tick marks

Starting point

The starting point of the line segments that form the minor tick marks.

(The starting point is defined relative to the bottom of the Graph area in horizontal orientation or to the left edge of the Graph area in vertical orientation.)

Negative values are supported as well, indicating positions beneath/ on the left of the Graph area.

The desired value as a relative part the height/width of the control height/width (depending on the orientation) presented as a fraction of 1 (e.g. 0.2 )

Ending point

The ending point of the line segments that form minor tick marks relative to the bottom of the Graph area in horizontal orientation or to the left border of the Graph area in vertical orientation.

Negative values are supported as well, indicating positions beneath/ on the left of the Graph area.

(The difference between the starting and the ending points forms the length of the marks’ line segments.)

The desired value as a relative part the height/width of the control height/width (depending on the orientation) presented as a fraction of 1 (e.g. 0.2 5 )

Thickness

The thickness of the minor tick marks

The desired value in pixels

Color

The color of the minor tick marks

The desired color

Example

The screenshot below demonstrates how the XamBulletGraph looks as a result of the following settings:

BulletGraph Configuring the Scale 9.png

Following is the code that implements this example.

In XAML:

<ig:XamBulletGraph MinorTickBrush="Purple"
                 MinorTickCount="4"
                 MinorTickEndExtent="0.1"
                 MinorTickStartExtent="0.05"
                 MinorTickStrokeThickness="2"
                 Interval="20" />

In C#:

bulletGraph.MinorTickBrush = new SolidColorBrush(Color.Purple);
bulletGraph.MinorTickCount = 4;
bulletGraph.MinorTickEndExtent = .1;
bulletGraph.MinorTickStartExtent = .05;
bulletGraph.MinorTickStrokeThickness = 2;
bulletGraph.Interval = 20;

Configuring the Scale’s Labeling

Overview

By default, the labels indicating the scale’s measures are enabled. The labels are defined in terms of the following factors:

  • Starting and ending points – the positions of the first and the last label relative to the edges of the scale.

  • Breadth of the label row – relative to the height/width of the control, depending on the orientation (vertical/horizontal). The breadth can be controlled only indirectly by the font settings in the applied style template.

  • The interval (the distance from each other) at which they occur. This is done through the LabelsPostInitial, LabelsPreTerminal and LabelInterval properties.

  • The position of the label row in the across-the-scale dimension – the default is at the bottom / on the left of the control (for horizontal or vertical orientation, respectively); the entire row can be shifted vertically at horizontal scale orientation or the horizontally at vertical scale orientation. This is done through the LabelExtent property.

BulletGraph Configuring the Scale 10.png

The value that each label displays is defined by the value represented by its position on the scale (This requires configuring the scale’s value range.) A string format can be applied to the labels so that their look is additionally customized. By default, a numeric label is displayed for each of the major tick marks and the labels are positioned beneath / on the left of the scale depending on the scale’s orientation (horizontal/vertical, respectively).

If you customize the labels and the major tick marks, you will more likely need to make sure they align to each other; to achieve alignment, set the same value for the tick marks interval ( Interval property) and the label interval (LabelInterval property). (By default, they are aligned because the LabelInterval property is not set and uses the value set for Interval.)

Event handling

The labels of XamBulletGraph can be additionally formatted on handling the corresponding event .

The following table maps the desired behavior to its respective event.

In order to: Handle this event:

Format the labels

Align the labels

Property settings

The following table maps the desired behavior to its respective property settings. For an illustration of the configurable aspects, see Example – horizontal orientation.

In order to configure: Details Use this property: And set it to:

Position

The positioning of the label row relative to bottom/left edge of the control (depending on the orientation – vertical/horizontal).

The desired value presented as a relative part the height/width of the control (depending on the orientation – vertical/horizontal) presented as a fraction of 1 (e.g. 0. 8 ).

Starting point

Position (in the measures of the scale) of the first label along the scale

The value (in the measures of the scale) at which the first label of the scale is to be displayed

Ending point

Position (in the measures of the scale) of the last label along the scale

The value (in the measures of the scale) at which the last label of the scale is to be displayed

Interval

The interval at which to place the labels (Interval is the distance between two adjacent labels in the measures of the scale.)

The desired value in the measure of the scale

Font color

Font color of the labels

The desired color

Example – horizontal orientation

The screenshot below demonstrates how the XamBulletGraph looks as a result of the following settings with the default horizontal scale orientation:

BulletGraph Configuring the Scale 11.png

Following is the code that implements this example.

In XAML:

<ig:XamBulletGraph LabelExtent="0.5"
                 LabelInterval="30"
                 LabelsPostInitial="20"
                 LabelsPreTerminal="20"
                 FontBrush="Green" />

In C#:

bulletGraph.LabelExtent = .5;
bulletGraph.LabelInterval = 30;
bulletGraph.LabelsPostInitial = 20;
bulletGraph.LabelsPreTerminal = 20;
bulletGraph.FontBrush = new SolidColorBrush(Color.Green);

Example – vertical orientation

The screenshot below demonstrates how the XamBulletGraph looks as a result of the following property settings (same as in Example – horizontal orientationExample – horizontal orientation) and vertical orientation:

BulletGraph Configuring the Scale 12.png

Following is the code that implements this example.

In XAML:

<ig:XamBulletGraph Orientation="Vertical"
                 LabelExtent="0.5"
                 LabelInterval="30"
                 LabelsPostInitial="20"
                 LabelsPreTerminal="20"
                 FontBrush="Green" />

In C#:

bulletGraph.Orientation = LinearScaleOrientation.Vertical;
bulletGraph.LabelExtent = .8;
bulletGraph.LabelInterval = 30;
bulletGraph.LabelsPostInitial = 20;
bulletGraph.LabelsPreTerminal = 20;
bulletGraph.FontBrush = new SolidColorBrush(Color.Green);

Related Content

Topics

The following topics provide additional information related to this topic.

Topic Purpose

This topic explains how to configure the XamBulletGraph control with vertical scale and/or inverted scale direction.

This topic explains, with examples, how to configure the performance bar of the XamBulletGraph control. This includes the value indicated by the bar, its width, position, and formatting.

This topic explains, with code examples, how to configure the comparative measure marker of the XamBulletGraph control. This includes the marker’s value, width, and formatting.

This topic explains, with code examples, how to configure ranges in the XamBulletGraph control. This includes the number of ranges and their positions, lengths, widths, and formatting.

This topic explains, with code examples, how to configure a background for the bullet graph. This includes setting the background’s size, position, color, and border.

Resources

The following material (available outside the Infragistics family of content) provides additional information related to this topic.

Title Purpose

An MSDN overview article on formatting types with sub-articles on the specific string formats.