共享Filling和Gradient设置

我们知道通过组件的Filling和Gradient两组属性,可以实现各种各样的填充(Filling)和渐变(Gradient)效果。

在上一节中,我们设计了这样一个仪表:

其中用SingleMark模拟的加减两个按钮,其Filling和Gradient设置是完全相同的,此类情况可以共享设置,就之前像共享ValueColors设置一样。

设计步骤:

1、应用这个仪表的模板文件,然后在Decorators集合找到minusButton和plusButton,删除两个SingleMark的全部Filling和Gradient设置。

2、单击CommonFillings属性右侧的"..."按钮:

3、在CommonFillings集合编辑窗口,增加一个CommonFilling,设置好Name属性和Filling的相关属性:

3、回到Gauges属性窗口,单击CommonGradients属性右侧的"..."按钮:

4、在CommonGradients集合编辑窗口增加一个CommonGradient项目,设置好Gradient的相关属性以及Name属性:

4、然后在Decorators集合找到minusButton和plusButton,在其Filling属性和Gradient属性的下拉列表中,选择前面增加的项目:

用代码设置

你也可以通过代码完成上述设置,等效的代码为:

Dim xg As LinearGauge = e.Form.Controls("Guages1").LinearGauge
'
定义CommonFilling
Dim
cf As New GaugeCommonFilling()
cf.Name =
"normalButton"
cf.BrushType = C1.Win.C1Gauge.C1GaugeBrushType.Gradient
cf.Color = color.White
cf.Color2 = color.DimGray
xg.CommonFillings.Add(cf)

'
定义CommonGradient
Dim
cg As New GaugeCommonGradient()
cg.Name =
"normal"
cg.Direction = C1.Win.C1Gauge.C1GaugeGradientDirection.RadialOuter
cg.CenterPointX = 0.7
cg.CenterPointY = 0.7
cg.FocusScaleX = 0.2
cg.FocusScaleY = 0.2
xg.CommonGradients.Add(cg)

'
应用到加减两个SingleMark
For
Each name As String In {"minusButton", "plusButton"}
   
Dim smk As SingleMark = xg.Decorators(name)
    smk.Filling.CommonFillingName =
"normalButton"
    smk.Gradient.CommonGradientName =
"normal"
Next

 


本页地址:http://www.foxtable.com/webhelp/topics/3928.htm