我知道,我可以这样改变所有文字的颜色:
Shape.CellsU [“Char.Color”]。FormulaForceU =“RGB(255,255,255)”;还有办法改变形状中某些字符的颜色……
该 CharProps property允许您将索引设置为预定义的文档颜色集合。对于自定义RGB,您可以通过首先获取行索引来设置相应的单元格公式 CharPropsRow 像这样:
CharProps
var shp = vApp.ActiveWindow.Selection.PrimaryItem; var shpChars = shp.Characters; shpChars.Begin = 2; shpChars.End = 5; //shpChars.set_CharProps((short)Visio.VisCellIndices.visCharacterColor, (short)Visio.VisDefaultColors.visRed); var targetRow = shpChars.CharPropsRow[0]; shp.CellsSRC[(short)Visio.VisSectionIndices.visSectionCharacter, targetRow, (short)Visio.VisCellIndices.visCharacterColor].FormulaU = "RGB(40,220,40)";
这应该给你类似的结果:
[更新]以上假设您的目标是格式并进行更改。要添加新运行,您可以先使用CharProps添加行,然后使用CharPropsRow来定位新运行。因此,您可以针对新页面运行此代码:
var vPag = vApp.ActivePage; var shp = vPag.DrawRectangle(3,3,5,4); shp.Text = "GoodMorning"; var shpChars = shp.Characters; shpChars.Begin = 0; shpChars.End = 4; var targetRow = shpChars.CharPropsRow[(short)Visio.VisCharsBias.visBiasLetVisioChoose]; shp.CellsSRC[(short)Visio.VisSectionIndices.visSectionCharacter, targetRow, (short)Visio.VisCellIndices.visCharacterColor].FormulaU = "RGB(220,40,40)"; shpChars.Begin = 4; shpChars.End = 11; shpChars.set_CharProps((short)Visio.VisCellIndices.visCharacterColor, (short)Visio.VisDefaultColors.visBlack); targetRow = shpChars.CharPropsRow[(short)Visio.VisCharsBias.visBiasLetVisioChoose]; shp.CellsSRC[(short)Visio.VisSectionIndices.visSectionCharacter, targetRow, (short)Visio.VisCellIndices.visCharacterColor].FormulaU = "RGB(40,200,40)";
......这应该导致以下结果: