动态添加仪表(卡片五)
上一个帮助,我们学了怎么动态在已有的仪表里添加形状。这里学学动态添加仪表,以及仪表里的形状。
同样我们先添加好一个仪表作为样本,取对应的属性值。如图:
属性 |
值 |
说明 |
行为-》AxisLength |
0.23 |
|
行为-》AxisStart |
0.74 |
|
行为-》BaseFactor |
0.06 |
|
行为-》BaseOrigin |
0.46 |
|
行为-》Maximum |
5000 |
最大值和最小值根据自己需要设置 |
1、Rectangle
属性 |
值 |
说明 |
布局-》CenterPointX |
0.05 |
|
布局-》CenterPointY
|
0.3
|
|
布局-》Height |
40 |
|
布局-》Width |
25 | |
布局-》RotateAngle |
-30 |
|
属性变更-》Border-》Color |
Transparent |
|
属性变更-》Filling-》Color |
72, 163, 217 |
|
2、Rectangle
复制上面的Rectangle,把布局-》RotateAngle改为90。
3、Rectangle
属性 |
值 |
说明 |
布局-》CenterPointX |
0.05 |
|
布局-》CenterPointY
|
0.3
|
|
布局-》Height |
40 |
|
布局-》Width |
25 | |
布局-》RotateAngle |
30 |
|
属性变更-》Border-》Color |
Transparent |
|
属性变更-》Filling-》Color |
72, 163, 217 |
|
属性变更-》Filling-》Color2 |
20, 33, 88 |
|
属性变更-》Filling-》BushType |
Gradient |
|
属性变更-》Filling-》Opacity2 |
80% |
|
4、Caption
属性 |
值 |
说明 |
布局-》CenterPointX |
0.05 |
|
布局-》CenterPointY |
0.33 |
|
属性变更-》Color |
White |
|
属性变更-》Text |
1 |
|
属性变更-》Font |
黑体, 10.5pt, style=Bold |
|
5、Caption
属性 |
值 |
说明 |
布局-》CenterPointX |
0.25 |
|
布局-》CenterPointY |
0.35 |
|
布局-》Width |
250 |
|
属性变更-》Color |
White |
|
属性变更-》Text |
标题文字 |
|
属性变更-》Font |
黑体, 10.5pt, style=Bold |
|
1、 Range
属性 |
值 |
说明 |
布局-》Location |
80 |
|
布局-》Width |
15 |
|
属性变更-》Border-》Color |
Transparent |
|
属性变更-》AntiAliasing |
HighQuality |
|
属性变更-》ValueColors |
|
添加3个颜色,分别为: 颜色1:55, 145, 221;Value=0 颜色3:25, 233,
238;Value=2500 颜色3:255, 203, 114;Value=5000 |
行为-》ToPointerIndex |
100 |
|
2、 SingleLabel
属性 |
值 |
说明 |
布局-》Location |
35 |
|
属性变更-》Color |
White |
|
属性变更-》Font |
微软雅黑, 10.5pt, style=Bold |
|
属性变更-》Format |
0 |
|
行为-》PointerIndex |
100 |
|
行为-》Position |
0.85 |
设置好一个仪表后,一口气复制7份,然后微调一下定位,如图:
可以观察到,每一个仪表里面的形状是不需要重新调整的,每一个仪表的BaseOrigin只需要比上一个增加0.06即可。那么使用代码添加仪表的时候,这些仪表的设置都是一样的,只是定位控制BaseOrigin即可。然后编号、标题和数量,在遍历里根据不同行设置不同值即可。完整代码:
-
-
Dim range As GaugeRange
-
Dim c1 As GaugeValueColor
-
Dim slabel As GaugeSingleLabel
-
- gg.Gauges.RemoveAt(gg.Gauges.Count - 1)
-
- drs = DataTables("产业倾向").Select("名称 is not null", "数量 desc")
-
For i As Integer = 0 To drs.Count - 1
-
dr = drs(i)
-
Dim s As String = dr("名称")
-
lg = New LinearGauge
-
lg.Name = "倾向_" & i
-
lg.Pointer.SweepTime = 5
-
lg.AxisLength = 0.23
-
lg.AxisStart = 0.74
-
lg.BaseFactor = 0.06
-
lg.BaseOrigin = 0.46 + i * 0.06
-
lg.Maximum = 5000
-
-
lg.Pointer.Visible = False
-
lg.Value = dr("数量")
-
-
-
grt = New GaugeRectangle
-
grt.CenterPointX = 0.05
-
grt.CenterPointY = 0.3
-
grt.Height = 40
-
grt.RotateAngle = -30
-
grt.Width = 25
-
grt.Border.Color = Color.Transparent
-
grt.Filling.Color = Color.FromArgb(72, 163, 217)
-
lg.FaceShapes.Add(grt)
-
-
grt = New GaugeRectangle
-
grt.CenterPointX = 0.05
-
grt.CenterPointY = 0.3
-
grt.Height = 40
-
grt.RotateAngle = 90
-
grt.Width = 25
-
grt.Border.Color = Color.Transparent
-
grt.Filling.Color = Color.FromArgb(72, 163, 217)
-
lg.FaceShapes.Add(grt)
-
-
grt = New GaugeRectangle
-
grt.CenterPointX = 0.05
-
grt.CenterPointY = 0.3
-
grt.Height = 40
-
grt.RotateAngle = 30
-
grt.Width = 25
-
grt.Border.Color = Color.Transparent
-
grt.Filling.Color = Color.FromArgb(72, 163, 217)
-
grt.Filling.Color2 = Color.FromArgb(20, 33, 88)
-
grt.Filling.Opacity2 = 0.8
-
-
grt.Filling.BrushType = 2
-
lg.FaceShapes.Add(grt)
-
-
gct = New GaugeCaption
-
gct.CenterPointX = 0.05
-
gct.CenterPointY = 0.33
-
gct.Color = Color.White
-
gct.Font = New Font("黑体", 10.5f, FontStyle.Bold)
-
gct.Text = (i + 1)
-
lg.FaceShapes.Add(gct)
-
-
gct = New GaugeCaption
-
gct.Alignment = StringAlignment.Near
-
gct.CenterPointX = 0.33
-
gct.CenterPointY = 0.35
-
gct.Width = 250
-
gct.Color = Color.White
-
gct.Font = New Font("黑体", 10.5f, FontStyle.Bold)
-
gct.Name ="标题"< /span >
- gct.Text = s
-
lg.FaceShapes.Add(gct)
-
- range = New GaugeRange
-
range.Location = 80
-
range.Width = 15
-
range.AntiAliasing = 2
-
range.Border.Color = Color.Transparent
-
range.ToPointerIndex = 100
-
c1 = New GaugeValueColor
-
c1.Color = Color.FromArgb(55, 145, 221)
-
c1.Value = 0
-
range.ValueColors.Add(c1)
-
c1 = New GaugeValueColor
-
c1.Color = Color.FromArgb(25, 233, 238)
-
c1.Value = 2500
-
range.ValueColors.Add(c1)
-
c1 = New GaugeValueColor
-
c1.Color = Color.FromArgb(255, 203, 114)
-
c1.Value = 5000
-
range.ValueColors.Add(c1)
-
lg.Decorators.Add(range)
-
- slabel = New GaugeSingleLabel
-
slabel.Location = 35
-
slabel.Color = Color.White
-
slabel.PointerIndex = 100
-
slabel.Position = 0.85
-
slabel.Font = New Font("黑体", 10.5f, FontStyle.Bold)
-
slabel.Format = "0"
-
lg.Decorators.Add(slabel)
-
- gg.Gauges.Add(lg)
-
Next