Ejemplo n.º 1
0
        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());
                    }
                }
            }
        }