wpf呈现UIElment的缩略图

转自:http://www.cnblogs.com/sunhappy0318/archive/2012/05/15/SLT_UIElement.html

在msdn上面介绍两种方法:

1、使用RenderTargetBitmap

2、使用VisualBrush

使用第一种方式是,首先按UIElement的原始尺寸转换成位图,放到Image控件里面,通过缩放矩阵编写你想要的缩略图,代码:

RenderTargetBitmap tRenderTargetBitmap = new RenderTargetBitmap((int)tPageNode.Width, (int)tPageNode.Height, 1 / 96, 1 / 96, PixelFormats.Default);
            tRenderTargetBitmap.Render(tPageNode);
            Image tImage = new Image();
            tImage.Source = tRenderTargetBitmap;
            tImage.Width = tPageNode.Width / 8;
            tImage.Height = tPageNode.Height / 8;
            double tWidthX = 100 / tPageNode.Width;
            double tHeightX = 75 / tPageNode.Height;
            ScaleTransform tScaleTransform = new ScaleTransform();
            tScaleTransform.ScaleX = tWidthX;
            tScaleTransform.ScaleY = tHeightX;
            tImage.RenderTransform = tScaleTransform;

使用第二种方法:直接把UIElement赋值给VisualBrush,通过Rectangle呈现,设置Rectangle的大小,代码:

VisualBrush myVisualBrush = new VisualBrush();
            myVisualBrush.Visual = tPageNode;
            Rectangle myRectangle = new Rectangle();
            myRectangle.Width = 100;
            myRectangle.Height = 100;
            myRectangle.Stroke = Brushes.Black;
            myRectangle.Margin = new Thickness(5, 0, 5, 0);
            myRectangle.Fill = myVisualBrush;
            tPageCanvas.Children.Add(myRectangle);

第二种方法比第一种方法表现优势在于:可以实时刷新UIElement的内容、呈现的内容相对比较清晰。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值