public void PasteFromClipboard(DDCanvas targetCanvas) { if (targetCanvas == null) { return; } if (Clipboard.ContainsData(DataFormat)) { ClearSelection(); string xaml = Clipboard.GetData(DataFormat) as string; object[] objects = DDTools.ReadMultipleFromXaml(xaml); List <DDObject> pastedObjects = new List <DDObject>(); foreach (object o in objects) { DDObject ddo = DDObject.TryCreateFromCLR(o); if (ddo != null) { pastedObjects.Add(ddo); targetCanvas.Children.Add(ddo); } } SelectObjects(targetCanvas, pastedObjects.ToArray()); if (pastedObjects.Count > 0) { if (ObjectsAdded != null) { ObjectsAdded(this, new EventArgs()); } } } }