public OptionBox Clone(UcmlObject obj) { var newObj = new OptionBox(); var aux = (OptionBox)obj; newObj.Id = aux.Id; newObj.UcmlName = aux.UcmlName; newObj.Color = aux.Color; newObj.PosTopX = aux.PosTopX; newObj.PosTopY = aux.PosTopY; newObj.Description = aux.Description; newObj.TemplateName = aux.TemplateName; newObj.listNewProp = aux.listNewProp; newObj.UcmlWidth = aux.UcmlWidth; newObj.UcmlHeight = aux.UcmlHeight; newObj.myColor = aux.myColor; newObj.Percentage = aux.Percentage; newObj.StartLine = aux.StartLine; newObj.EndLine = aux.EndLine; newObj.IdObjectStarLine = aux.IdObjectStarLine; newObj.IdObjectEndLine = aux.IdObjectEndLine; newObj.isAbleUserSelection = aux.isAbleUserSelection; return(newObj); }
private static void ImportOptionBox(ref Canvas myCanvas, XmlNodeList listOptionBox, ControlTemplate template) { OptionBox ucmlObject; foreach (XmlNode xn in listOptionBox) { ucmlObject = new OptionBox().ImportToXml(xn); list[3]++; ucmlObject.Template = template; // Calling ApplyTemplate enables us to navigate the visual tree right now (important!) ucmlObject.ApplyTemplate(); var d = (TextBlock)ucmlObject.Template.FindName("Description", ucmlObject); d.Text = ucmlObject.Description.ToString(); Polyline line1 = (Polyline)ucmlObject.Template.FindName("Line1", ucmlObject); Polyline line2 = (Polyline)ucmlObject.Template.FindName("Line2", ucmlObject); TextBlock descriptionOptionBox = (TextBlock)ucmlObject.Template.FindName("Description", ucmlObject); line1.Stroke = ucmlObject.myColor; line2.Stroke = ucmlObject.myColor; descriptionOptionBox.Foreground = ucmlObject.myColor; // Add new object as child of canvas to allow get ucmlObjsct's size from it's template myCanvas.Children.Add(ucmlObject); // Update the layout of the ucml object ucmlObject.UpdateLayout(); // Set position top and left of ucml object on the canvas Canvas.SetLeft(ucmlObject, ucmlObject.PosTopX); Canvas.SetTop(ucmlObject, ucmlObject.PosTopY); // Move our thumb to the front to be over the lines Canvas.SetZIndex(ucmlObject, 1); // Update the layout of the ucml object ucmlObject.UpdateLayout(); LoadMyUsers(ucmlObject, myCanvas); } }