Пример #1
0
        private void WriteFillSymbol(FillSymbol fillSymbol)
        {
            if (fillSymbol is ESRI.ArcGIS.Client.FeatureService.Symbols.SimpleFillSymbol || fillSymbol is ESRI.ArcGIS.Client.FeatureService.Symbols.PictureFillSymbol)
            {
                StartType(fillSymbol, Constants.esriFSSymbolsPrefix);
                WriteJsonAttribute(fillSymbol as IJsonSerializable);
            }
            else
            {
                StartType(fillSymbol, Constants.esriPrefix);

                if (fillSymbol.BorderThickness != 1.0)
                    WriteAttribute("BorderThickness", fillSymbol.BorderThickness);

                SolidColorBrush sb = fillSymbol.BorderBrush as SolidColorBrush;
                if (sb != null)
                {
                    WriteAttribute("BorderBrush", sb.Color);
                }
                else
                {
                    writer.WriteStartElement(fillSymbol.GetType().Name + ".BorderBrush", Namespaces[Constants.esriPrefix]);
                    new BrushXamlWriter(writer, Namespaces).WriteBrush(fillSymbol.BorderBrush);
                    writer.WriteEndElement();
                }

                sb = fillSymbol.Fill as SolidColorBrush;
                if (sb != null)
                {
                    WriteAttribute("Fill", sb.Color);
                }
                else
                {
                    writer.WriteStartElement(fillSymbol.GetType().Name + ".Fill", Namespaces[Constants.esriPrefix]);
                    new BrushXamlWriter(writer, Namespaces).WriteBrush(fillSymbol.Fill);
                    writer.WriteEndElement();
                }

                //if (fillSymbol is ESRI.ArcGIS.Client.FeatureService.Symbols.SimpleFillSymbol)
                //{
                //    ESRI.ArcGIS.Client.FeatureService.Symbols.SimpleFillSymbol sfs = fillSymbol as ESRI.ArcGIS.Client.FeatureService.Symbols.SimpleFillSymbol;
                //    WriteAttribute("Style", sfs.Style.ToString());
                //    WriteAttribute("BorderStyle", sfs.BorderStyle.ToString());
                //    WriteAttribute("Color", sfs.Color);
                //    if (sfs.SelectionColor != null)
                //    {
                //        writer.WriteStartElement("SimpleFillSymbol.SelectionColor", Namespaces[Constants.esriFSSymbolsPrefix]);
                //        new BrushXamlWriter(writer, Namespaces).WriteBrush(sfs.SelectionColor);
                //        writer.WriteEndElement();
                //    }
                //}
                //else if (fillSymbol is ESRI.ArcGIS.Client.FeatureService.Symbols.PictureFillSymbol)
                //{
                //    ESRI.ArcGIS.Client.FeatureService.Symbols.PictureFillSymbol pfs = fillSymbol as ESRI.ArcGIS.Client.FeatureService.Symbols.PictureFillSymbol;
                //    WriteAttribute("Height", pfs.Height);
                //    WriteAttribute("Width", pfs.Width);
                //    WriteAttribute("Opacity", pfs.Opacity);
                //    WriteAttribute("BorderStyle", pfs.BorderStyle.ToString());
                //    if (pfs.Color != null)
                //    {
                //        writer.WriteStartElement("PictureFillSymbol.OutlineColor", Namespaces[Constants.esriFSSymbolsPrefix]);
                //        new BrushXamlWriter(writer, Namespaces).WriteBrush(pfs.Color);
                //        writer.WriteEndElement();
                //    }
                //    if (pfs.SelectionColor != null)
                //    {
                //        writer.WriteStartElement("PictureFillSymbol.SelectionColor", Namespaces[Constants.esriFSSymbolsPrefix]);
                //        new BrushXamlWriter(writer, Namespaces).WriteBrush(pfs.SelectionColor);
                //        writer.WriteEndElement();
                //    }
                //    #region Set ContentType,Url and ImageData to set Source
                //    string json = pfs.ToJson();
                //    SetImageSourceRelatedProperties(pfs, json);
                //    #endregion
                //}
            }
            writer.WriteEndElement();
        }