private static void SetImagePropertiesFromJson(DependencyObject o, DependencyPropertyChangedEventArgs args) { Symbol symbol = o as Symbol; string json = GetJson(symbol); if (string.IsNullOrEmpty(json)) return; SolidColorBrush selectionColor = new SolidColorBrush(Colors.Cyan); FS.PictureFillSymbol pfs = o as FS.PictureFillSymbol; if (pfs != null) { FS.PictureFillSymbol pfsN = Symbol.FromJson(json) as FS.PictureFillSymbol; if (pfsN != null) { #region Copy Properties pfs.Source = pfsN.Source; //internal properties - for documentation //pfs.Angle = pfsN.Angle; //pfs.XOffset = pfsN.XOffset; //pfs.YOffset = pfsN.YOffset; //pfs.XScale = pfsN.XScale; //pfs.YScale = pfsN.YScale; pfs.BorderBrush = pfsN.BorderBrush; pfs.BorderThickness = pfsN.BorderThickness; pfs.BorderStyle = pfsN.BorderStyle; pfs.Width = pfsN.Width; pfs.Height = pfsN.Height; pfs.Color = pfsN.Color; pfs.Opacity = 0.75; pfs.SelectionColor = selectionColor; #endregion } return; } FS.PictureMarkerSymbol pms = o as FS.PictureMarkerSymbol; if (pms != null) { FS.PictureMarkerSymbol pmsN = Symbol.FromJson(json) as FS.PictureMarkerSymbol; if (pmsN != null) { #region Copy Properties pms.Source = pmsN.Source; pms.Width = pmsN.Width; pms.Height = pmsN.Height; pms.XOffsetFromCenter = pmsN.XOffsetFromCenter; pms.YOffsetFromCenter = pmsN.YOffsetFromCenter; pms.Color = pmsN.Color; pms.Opacity = pmsN.Opacity; pms.Angle = pmsN.Angle; pms.SelectionColor = selectionColor; #endregion Dictionary<string, object> jsonObject = new ESRI.ArcGIS.Client.Utils.JavaScriptSerializer().DeserializeObject(json) as Dictionary<string, object>; if (jsonObject != null) { if (jsonObject.ContainsKey("imageData")) SetImageData(pms, jsonObject["imageData"] as string); else if (jsonObject.ContainsKey("url")) SetImageUrl(pms, jsonObject["url"] as string); } } return; } FS.SimpleFillSymbol sfs = o as FS.SimpleFillSymbol; if (sfs != null) { FS.SimpleFillSymbol sfsN = Symbol.FromJson(json) as FS.SimpleFillSymbol; if (sfsN != null) { #region Copy Properties sfs.Fill = sfsN.Fill; sfs.Style = sfsN.Style; sfs.Color = sfsN.Color; sfs.BorderBrush = sfsN.BorderBrush; sfs.BorderThickness = sfsN.BorderThickness; sfs.BorderStyle = sfsN.BorderStyle; sfs.SelectionColor = selectionColor; #endregion } return; } FS.SimpleLineSymbol sls = o as FS.SimpleLineSymbol; if (sls != null) { FS.SimpleLineSymbol slsN = Symbol.FromJson(json) as FS.SimpleLineSymbol; if (slsN != null) { #region CopyProperties sls.Style = slsN.Style; sls.Color = slsN.Color; sls.Width = slsN.Width; sls.SelectionColor = selectionColor; #endregion } return; } FS.SimpleMarkerSymbol sms = o as FS.SimpleMarkerSymbol; if (sms != null) { FS.SimpleMarkerSymbol smsN = Symbol.FromJson(json) as FS.SimpleMarkerSymbol; if (smsN != null) { #region Copy properties sms.Style = smsN.Style; sms.Color = smsN.Color; sms.Size = smsN.Size; sms.XOffsetFromCenter = smsN.XOffsetFromCenter; sms.YOffsetFromCenter = smsN.YOffsetFromCenter; sms.Angle = smsN.Angle; sms.OutlineColor = smsN.OutlineColor; sms.OutlineThickness = smsN.OutlineThickness; sms.OutlineStyle = smsN.OutlineStyle; sms.SelectionColor = selectionColor; #endregion } return; } }
private static void SetImagePropertiesFromJson(DependencyObject o, DependencyPropertyChangedEventArgs args) { Symbol symbol = o as Symbol; string json = GetJson(symbol); if (string.IsNullOrEmpty(json)) { return; } SolidColorBrush selectionColor = new SolidColorBrush(Colors.Cyan); FS.PictureFillSymbol pfs = o as FS.PictureFillSymbol; if (pfs != null) { FS.PictureFillSymbol pfsN = Symbol.FromJson(json) as FS.PictureFillSymbol; if (pfsN != null) { #region Copy Properties pfs.Source = pfsN.Source; //internal properties - for documentation //pfs.Angle = pfsN.Angle; //pfs.XOffset = pfsN.XOffset; //pfs.YOffset = pfsN.YOffset; //pfs.XScale = pfsN.XScale; //pfs.YScale = pfsN.YScale; pfs.BorderBrush = pfsN.BorderBrush; pfs.BorderThickness = pfsN.BorderThickness; pfs.BorderStyle = pfsN.BorderStyle; pfs.Width = pfsN.Width; pfs.Height = pfsN.Height; pfs.Color = pfsN.Color; pfs.Opacity = 0.75; pfs.SelectionColor = selectionColor; #endregion } return; } FS.PictureMarkerSymbol pms = o as FS.PictureMarkerSymbol; if (pms != null) { FS.PictureMarkerSymbol pmsN = Symbol.FromJson(json) as FS.PictureMarkerSymbol; if (pmsN != null) { #region Copy Properties pms.Source = pmsN.Source; pms.Width = pmsN.Width; pms.Height = pmsN.Height; pms.XOffsetFromCenter = pmsN.XOffsetFromCenter; pms.YOffsetFromCenter = pmsN.YOffsetFromCenter; pms.Color = pmsN.Color; pms.Opacity = pmsN.Opacity; pms.Angle = pmsN.Angle; pms.SelectionColor = selectionColor; #endregion Dictionary <string, object> jsonObject = new ESRI.ArcGIS.Client.Utils.JavaScriptSerializer().DeserializeObject(json) as Dictionary <string, object>; if (jsonObject != null) { if (jsonObject.ContainsKey("imageData")) { SetImageData(pms, jsonObject["imageData"] as string); } else if (jsonObject.ContainsKey("url")) { SetImageUrl(pms, jsonObject["url"] as string); } } } return; } FS.SimpleFillSymbol sfs = o as FS.SimpleFillSymbol; if (sfs != null) { FS.SimpleFillSymbol sfsN = Symbol.FromJson(json) as FS.SimpleFillSymbol; if (sfsN != null) { #region Copy Properties sfs.Fill = sfsN.Fill; sfs.Style = sfsN.Style; sfs.Color = sfsN.Color; sfs.BorderBrush = sfsN.BorderBrush; sfs.BorderThickness = sfsN.BorderThickness; sfs.BorderStyle = sfsN.BorderStyle; sfs.SelectionColor = selectionColor; #endregion } return; } FS.SimpleLineSymbol sls = o as FS.SimpleLineSymbol; if (sls != null) { FS.SimpleLineSymbol slsN = Symbol.FromJson(json) as FS.SimpleLineSymbol; if (slsN != null) { #region CopyProperties sls.Style = slsN.Style; sls.Color = slsN.Color; sls.Width = slsN.Width; sls.SelectionColor = selectionColor; #endregion } return; } FS.SimpleMarkerSymbol sms = o as FS.SimpleMarkerSymbol; if (sms != null) { FS.SimpleMarkerSymbol smsN = Symbol.FromJson(json) as FS.SimpleMarkerSymbol; if (smsN != null) { #region Copy properties sms.Style = smsN.Style; sms.Color = smsN.Color; sms.Size = smsN.Size; sms.XOffsetFromCenter = smsN.XOffsetFromCenter; sms.YOffsetFromCenter = smsN.YOffsetFromCenter; sms.Angle = smsN.Angle; sms.OutlineColor = smsN.OutlineColor; sms.OutlineThickness = smsN.OutlineThickness; sms.OutlineStyle = smsN.OutlineStyle; sms.SelectionColor = selectionColor; #endregion } return; } }