当前位置: 首页>>代码示例>>C#>>正文


C# InkCanvas.Measure方法代码示例

本文整理汇总了C#中System.Windows.Controls.InkCanvas.Measure方法的典型用法代码示例。如果您正苦于以下问题:C# InkCanvas.Measure方法的具体用法?C# InkCanvas.Measure怎么用?C# InkCanvas.Measure使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Windows.Controls.InkCanvas的用法示例。


在下文中一共展示了InkCanvas.Measure方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ExportToPng

        public static void ExportToPng(Uri path, InkCanvas Surface)
        {
            if (path == null) return;

            // Save current canvas transform
            Transform transform = Surface.LayoutTransform;
            // reset current transform (in case it is scaled or rotated)
            Surface.LayoutTransform = null;

            // Get the size of canvas
            Size size = new Size(Surface.ActualWidth, Surface.ActualHeight);
            // Measure and arrange the surface
            // VERY IMPORTANT
            Surface.Measure(size);
            Surface.Arrange(new Rect(size));

            // Create a render bitmap and push the surface to it
            RenderTargetBitmap renderBitmap =
              new RenderTargetBitmap(
                (int)size.Width,
                (int)size.Height,
                96d,
                96d,
                PixelFormats.Pbgra32);
            renderBitmap.Render(Surface);

            // Create a file stream for saving image
            using (FileStream outStream = new FileStream(path.LocalPath, FileMode.Create))
            {
                // Use png encoder for our data
                PngBitmapEncoder encoder = new PngBitmapEncoder();
                // push the rendered bitmap to it
                encoder.Frames.Add(BitmapFrame.Create(renderBitmap));
                // save the data to the stream
                encoder.Save(outStream);
            }

            // Restore previously saved layout
            Surface.LayoutTransform = transform;
        }
开发者ID:dolphinlcj,项目名称:motion-paint,代码行数:40,代码来源:save.cs

示例2: cloneAll

 private FrameworkElement cloneAll()
 {
     var clone = new InkCanvas();
     foreach (var stroke in stack.AllStrokes)
         clone.Strokes.Add(stroke.Clone());
     foreach (var child in stack.Work.Children)
     {
         var fe = (FrameworkElement)child;
         if (child is Image)
         {
             var image = (Image)child;
             var e = viewFor(image);
             Panel.SetZIndex(e, image.tag().author == Globals.me ? 3 : 1);
             clone.Children.Add(e);
         }
         else
         {
             var e = viewFor(fe);
             Panel.SetZIndex(e, 4);
             clone.Children.Add(e);
         }
     }
     var size = new Size(ActualWidth, ActualHeight);
     clone.Measure(size);
     clone.Arrange(new Rect(size));
     return clone;
 }
开发者ID:StackableRegiments,项目名称:metl2011,代码行数:27,代码来源:PresentationSpace.xaml.cs


注:本文中的System.Windows.Controls.InkCanvas.Measure方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。