public static Control CreateCustomOrderSymbol(object orderOrStop) { DataGraphicObject graphicObject = null; // Create data graphic object that depends on object type. if (orderOrStop is Stop) { graphicObject = StopGraphicObject.Create(orderOrStop as Stop); } else if (orderOrStop is Order) { graphicObject = OrderGraphicObject.Create(orderOrStop as Order); } else { Debug.Assert(false); // Not supported. } // Init graphics object by order symbology manager. SymbologyManager.InitGraphic(graphicObject); // Create symbol control var control = new ESRI.ArcLogistics.App.DragAndDrop.Adornments.Controls.SymbolControl (graphicObject.Symbol.ControlTemplate); // Copy attributes from graphics object to symbol control. control.SymbologyContextDictionary = graphicObject.Attributes; // Offset symbol so it is not rendered shifted. control.RenderTransform = new TranslateTransform(-control.OffsetX, -control.OffsetY); return(control); }
/// <summary> /// Create map symbol. /// </summary> /// <param name="templateResource">XAML path.</param> /// <param name="color">Fill color.</param> /// <param name="isLocked">Whether symbol should look locked.</param> /// <param name="isViolated">Whether symbol should look violated.</param> /// <param name="sequenceNumber">Stop sequence number.</param> /// <returns>Symbol element.</returns> private static Control _CreateMapSymbol(string templateResource, Color color, bool isLocked, bool isViolated, int?sequenceNumber) { // Load label sequence control template. ControlTemplate template = _LoadTemplateFromResource(templateResource); // Create symbol control var control = new ESRI.ArcLogistics.App.DragAndDrop.Adornments.Controls.SymbolControl (template); // Set sequence number. control.SequenceNumber = sequenceNumber.HasValue ? sequenceNumber.Value.ToString() : ""; // Set color. SolidColorBrush fillingBrush = new System.Windows.Media.SolidColorBrush(color); control.Fill = fillingBrush; // Set locked status. control.IsLocked = isLocked; // Set violated status. control.IsViolated = isViolated; // Set render transformation to suppress displacement that is necessary for showing on map control. double?symbolDisplacement = (double?)template.Resources["SymbolDisplacement"]; if (symbolDisplacement.HasValue) { control.RenderTransform = new TranslateTransform(-symbolDisplacement.Value, -symbolDisplacement.Value); } else { control.RenderTransform = new TranslateTransform(-control.OffsetX, -control.OffsetY); } return(control); }
public static Control CreateCustomOrderSymbol(object orderOrStop) { DataGraphicObject graphicObject = null; // Create data graphic object that depends on object type. if (orderOrStop is Stop) graphicObject = StopGraphicObject.Create(orderOrStop as Stop); else if (orderOrStop is Order) graphicObject = OrderGraphicObject.Create(orderOrStop as Order); else Debug.Assert(false); // Not supported. // Init graphics object by order symbology manager. SymbologyManager.InitGraphic(graphicObject); // Create symbol control var control = new ESRI.ArcLogistics.App.DragAndDrop.Adornments.Controls.SymbolControl (graphicObject.Symbol.ControlTemplate); // Copy attributes from graphics object to symbol control. control.SymbologyContextDictionary = graphicObject.Attributes; // Offset symbol so it is not rendered shifted. control.RenderTransform = new TranslateTransform(-control.OffsetX, -control.OffsetY); return control; }
/// <summary> /// Create map symbol. /// </summary> /// <param name="templateResource">XAML path.</param> /// <param name="color">Fill color.</param> /// <param name="isLocked">Whether symbol should look locked.</param> /// <param name="isViolated">Whether symbol should look violated.</param> /// <param name="sequenceNumber">Stop sequence number.</param> /// <returns>Symbol element.</returns> private static Control _CreateMapSymbol(string templateResource, Color color, bool isLocked, bool isViolated, int? sequenceNumber) { // Load label sequence control template. ControlTemplate template = _LoadTemplateFromResource(templateResource); // Create symbol control var control = new ESRI.ArcLogistics.App.DragAndDrop.Adornments.Controls.SymbolControl (template); // Set sequence number. control.SequenceNumber = sequenceNumber.HasValue ? sequenceNumber.Value.ToString() : ""; // Set color. SolidColorBrush fillingBrush = new System.Windows.Media.SolidColorBrush(color); control.Fill = fillingBrush; // Set locked status. control.IsLocked = isLocked; // Set violated status. control.IsViolated = isViolated; // Set render transformation to suppress displacement that is necessary for showing on map control. double? symbolDisplacement = (double?)template.Resources["SymbolDisplacement"]; if (symbolDisplacement.HasValue) control.RenderTransform = new TranslateTransform(-symbolDisplacement.Value, -symbolDisplacement.Value); else { control.RenderTransform = new TranslateTransform(-control.OffsetX, -control.OffsetY); } return control; }