How do I set a shape to have Halftone type Dot, Frequency 45, Angle 45? I cannot find a place to properly set this.
I attempted to use Shape.Style.StringAssign() by getting the Shape.Style.Fill.Style, turning it into a string, and then setting just the screenSpec properties like I wanted.
Then I tried doing Shape.Style.Fill.SetPropertyString("screenSpec", "1,0,45000000,45,0"); and that did not work either.
I am using C# but I can figure out VBA code if someone has VBA code that works.
//only for fun but works
public static void FillShape(corel.Shape shape, double dotsize, double angle, double fillPercent) { CorelApp.Unit = corel.cdrUnit.cdrMillimeter; CorelApp.ActiveDocument.Unit = corel.cdrUnit.cdrMillimeter; CorelApp.EventsEnabled = false; CorelApp.Optimization = true; shape.RotateEx(angle * -1, 0, 0); double dist = dotsize + (dotsize * fillPercent / 100); int nx = (int)(shape.SizeWidth / dist); int ny = (int)(shape.SizeWidth / dist); corel.ShapeRange shapeRange = CorelApp.CreateShapeRange(); double posX = shape.LeftX; double posY = shape.BottomY; for (int x = 0; x <= nx; x++) { for (int y = 0; y <= ny; y++) { corel.Shape circle = CorelApp.ActiveLayer.CreateEllipse2(posX + (x * dist), posY + (y * dist), dotsize * .5); shapeRange.Add(circle); } } shapeRange.RotateEx(angle, 0, 0); shape.RotateEx(angle, 0, 0); corel.Shape dots = shapeRange.Combine(); dots = shape.Intersect(dots, true, false); dots.Fill.UniformColor.CMYKAssign(0, 0, 0, 100); dots.Outline.SetNoOutline(); CorelApp.EventsEnabled = true; CorelApp.Optimization = false; CorelApp.Refresh(); }
Unfortunately, this will not work for us. Thanks you for the code though, I might need this later!