Пример #1
0
        private void CloneVisualTree(ContainerVisual parent, Visual old)
        { 
            DrawingVisual visual = new DrawingVisual();
            parent.Children.Add(visual); 
 
            visual.Clip = VisualTreeHelper.GetClip(old);
            visual.Offset = VisualTreeHelper.GetOffset(old); 
            visual.Transform = VisualTreeHelper.GetTransform(old);
            visual.Opacity = VisualTreeHelper.GetOpacity(old);
            visual.OpacityMask = VisualTreeHelper.GetOpacityMask(old);
 
#pragma warning disable 0618
            visual.BitmapEffectInput = VisualTreeHelper.GetBitmapEffectInput(old); 
            visual.BitmapEffect = VisualTreeHelper.GetBitmapEffect(old); 
#pragma warning restore 0618
 
            // snapping guidelines??

            DrawingContext dc = visual.RenderOpen();
            dc.DrawDrawing(old.GetDrawing()); 
            dc.Close();
 
            int count = VisualTreeHelper.GetChildrenCount(old); 
            for(int i = 0; i < count; i++)
            { 
                Visual child = old.InternalGetVisualChild(i);
                CloneVisualTree(visual, child);
            }
 
        }
Пример #2
0
 /// <summary>
 /// GetDrawing returns the drawing content of the reference Visual
 /// </summary>
 public static DrawingGroup GetDrawing(Visual reference)
 {
     CheckVisualReferenceArgument(reference);
     return(reference.GetDrawing());
 }
 /// <summary>
 /// GetDrawing returns the drawing content of the reference Visual
 /// </summary>
 public static DrawingGroup GetDrawing(Visual reference)
 {
     CheckVisualReferenceArgument(reference);
     return reference.GetDrawing();
 }