private static void ImportDescriptionLineUser(ref Canvas myCanvas, XmlNodeList listDescriptionLine, ControlTemplate template) { DescriptionLineUser ucmlObject; foreach (XmlNode xn in listDescriptionLine) { ucmlObject = new DescriptionLineUser().ImportToXml(xn); list[1]++; 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(); var p = (TextBlock)ucmlObject.Template.FindName("Percentage", ucmlObject); p.Text = ucmlObject.Percentage.ToString() + "%"; p.Foreground = ucmlObject.myColor; Border b = (Border)ucmlObject.Template.FindName("circle", ucmlObject); b.BorderBrush = ucmlObject.myColor; Polyline pl = (Polyline)ucmlObject.Template.FindName("Line", ucmlObject); TextBlock tb = (TextBlock)ucmlObject.Template.FindName("Description", ucmlObject); pl.Stroke = ucmlObject.myColor; tb.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(); listUsers.Add(ucmlObject); } }
public DescriptionLineUser Clone(UcmlObject obj) { var newObj = new DescriptionLineUser(); var aux = (DescriptionLineUser)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.IdObjectStarLine = aux.IdObjectStarLine; newObj.IdObjectEndLine = aux.IdObjectEndLine; newObj.isAbleUserSelection = aux.isAbleUserSelection; return(newObj); }