private void HatchPatternXData(Hatch hatch) { if (hatch.XData.ContainsKey(ApplicationRegistry.Default.Name)) { XData xdataEntry = hatch.XData[ApplicationRegistry.Default.Name]; xdataEntry.XDataRecord.Clear(); xdataEntry.XDataRecord.Add(new XDataRecord(XDataCode.RealX, hatch.Pattern.Origin.X)); xdataEntry.XDataRecord.Add(new XDataRecord(XDataCode.RealY, hatch.Pattern.Origin.Y)); xdataEntry.XDataRecord.Add(new XDataRecord(XDataCode.RealZ, 0.0)); } else { XData xdataEntry = new XData(new ApplicationRegistry(ApplicationRegistry.Default.Name)); xdataEntry.XDataRecord.Add(new XDataRecord(XDataCode.RealX, hatch.Pattern.Origin.X)); xdataEntry.XDataRecord.Add(new XDataRecord(XDataCode.RealY, hatch.Pattern.Origin.Y)); xdataEntry.XDataRecord.Add(new XDataRecord(XDataCode.RealZ, 0.0)); hatch.XData.Add(xdataEntry.ApplicationRegistry.Name, xdataEntry); } if (!(hatch.Pattern is HatchGradientPattern)) { return; } HatchGradientPattern grad = (HatchGradientPattern)hatch.Pattern; if (hatch.XData.ContainsKey("GradientColor1ACI")) { XData xdataEntry = hatch.XData["GradientColor1ACI"]; XDataRecord record = new XDataRecord(XDataCode.Integer, grad.Color1.Index); xdataEntry.XDataRecord.Clear(); xdataEntry.XDataRecord.Add(record); } else { XData xdataEntry = new XData(new ApplicationRegistry("GradientColor1ACI")); xdataEntry.XDataRecord.Add(new XDataRecord(XDataCode.Integer, grad.Color1.Index)); hatch.XData.Add(xdataEntry.ApplicationRegistry.Name, xdataEntry); } if (hatch.XData.ContainsKey("GradientColor2ACI")) { XData xdataEntry = hatch.XData["GradientColor2ACI"]; XDataRecord record = new XDataRecord(XDataCode.Integer, grad.Color2.Index); xdataEntry.XDataRecord.Clear(); xdataEntry.XDataRecord.Add(record); } else { XData xdataEntry = new XData(new ApplicationRegistry("GradientColor2ACI")); xdataEntry.XDataRecord.Add(new XDataRecord(XDataCode.Integer, grad.Color2.Index)); hatch.XData.Add(xdataEntry.ApplicationRegistry.Name, xdataEntry); } }
public static System.Windows.Media.Brush PatternSolidFillToBrush(HatchGradientPattern myPattern, AciColor myColor) { GradientStopCollection stops = new GradientStopCollection(); LinearGradientBrush lgBrush = new LinearGradientBrush(stops); RadialGradientBrush rgBrush = new RadialGradientBrush(stops); if (myPattern.GradientType == HatchGradientPatternType.InvSpherical) { rgBrush.Center = new System.Windows.Point(0.25, 0.25); rgBrush.GradientOrigin = new System.Windows.Point(0.25, 0.25); rgBrush.RadiusX = 1; rgBrush.RadiusY = 1; GradientStop stop1 = new GradientStop(); stop1.Color = ToMediaColor(myPattern.Color1.ToColor()); stop1.Offset = 0.15; stops.Add(stop1); GradientStop stop2 = new GradientStop(); stop2.Color = ToMediaColor(myPattern.Color2.ToColor()); stop2.Offset = 0.5; stops.Add(stop2); rgBrush.GradientStops = stops; return(rgBrush); } else if (myPattern.GradientType == HatchGradientPatternType.Hemispherical) { rgBrush.Center = new System.Windows.Point(1, 1); rgBrush.GradientOrigin = new System.Windows.Point(1, 1); rgBrush.RadiusX = 1.5; rgBrush.RadiusY = 1.5; GradientStop stop1 = new GradientStop(); stop1.Color = ToMediaColor(myPattern.Color2.ToColor()); stop1.Offset = 0.1; stops.Add(stop1); GradientStop stop2 = new GradientStop(); stop2.Color = ToMediaColor(myPattern.Color1.ToColor()); stop2.Offset = 0.9; stops.Add(stop2); rgBrush.GradientStops = stops; return(rgBrush); } else { return(AciColorToBrush(myColor)); } }