コード例 #1
0
        protected override object CreateTileBrush(BaseFrameworkElement element)
        {
            Visual visual1 = element.Visual != null ? element.Visual.PlatformSpecificObject as Visual : (Visual)null;

            if (visual1 == null)
            {
                return((object)null);
            }
            foreach (Visual visual2 in ElementUtilities.GetVisualTree(visual1))
            {
                if (MakeDrawingBrushCommand.IsMediaElementInstance(visual2))
                {
                    this.showDrawingVideoWarning = true;
                    break;
                }
            }
            Drawing      drawing      = MakeDrawingBrushCommand.SimplifyDrawing(MakeDrawingBrushCommand.CreateDrawing(visual1, false), Path.GetDirectoryName(this.SceneViewModel.ProjectContext.ProjectPath));
            DrawingBrush drawingBrush = new DrawingBrush();

            if (drawing != null)
            {
                drawingBrush.Drawing = drawing;
                UIElement uiElement = visual1 as UIElement;
                if (uiElement != null)
                {
                    drawingBrush.Viewbox      = new Rect(uiElement.RenderSize);
                    drawingBrush.ViewboxUnits = BrushMappingMode.Absolute;
                }
            }
            return((object)drawingBrush);
        }
コード例 #2
0
 private static Drawing SimplifyDrawingGroup(DrawingGroup drawingGroup, string projectPath)
 {
     for (int index = drawingGroup.Children.Count - 1; index >= 0; --index)
     {
         Drawing drawing = MakeDrawingBrushCommand.SimplifyDrawing(drawingGroup.Children[index], projectPath);
         if (drawing == null)
         {
             drawingGroup.Children.RemoveAt(index);
         }
         else
         {
             drawingGroup.Children[index] = drawing;
         }
     }
     if (drawingGroup.ClipGeometry == null)
     {
         drawingGroup.ClearValue(DrawingGroup.ClipGeometryProperty);
     }
     if (drawingGroup.Transform == null || drawingGroup.Transform.Value.IsIdentity)
     {
         drawingGroup.ClearValue(DrawingGroup.TransformProperty);
     }
     if (drawingGroup.Opacity >= 1.0)
     {
         drawingGroup.ClearValue(DrawingGroup.OpacityProperty);
     }
     if (drawingGroup.OpacityMask == null)
     {
         drawingGroup.ClearValue(DrawingGroup.OpacityMaskProperty);
     }
     if (drawingGroup.BitmapEffect == null)
     {
         drawingGroup.ClearValue(DrawingGroup.BitmapEffectProperty);
     }
     if (drawingGroup.BitmapEffectInput == null || drawingGroup.BitmapEffectInput.AreaToApplyEffect.IsEmpty && drawingGroup.BitmapEffectInput.Input == BitmapEffectInput.ContextInputSource)
     {
         drawingGroup.ClearValue(DrawingGroup.BitmapEffectInputProperty);
     }
     if (drawingGroup.Children.Count == 0 || drawingGroup.Opacity <= 0.0)
     {
         return((Drawing)null);
     }
     if (drawingGroup.Children.Count == 1 && drawingGroup.ClipGeometry == null && (drawingGroup.Transform == null || drawingGroup.Transform.Value.IsIdentity) && (drawingGroup.Opacity == 1.0 && drawingGroup.OpacityMask == null && drawingGroup.BitmapEffect == null))
     {
         return(drawingGroup.Children[0]);
     }
     return((Drawing)drawingGroup);
 }