首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RenderTransform vs PushTransform

RenderTransform vs PushTransform
EN

Stack Overflow用户
提问于 2012-05-05 01:00:00
回答 1查看 1.9K关注 0票数 4

我有一个形状(下面的红色路径),我必须对该路径应用一个TranslateTransform和一个ScaleTransform转换。但是如果我以这种方式使用Shape RenderTransform属性:

代码语言:javascript
复制
Path MyPath = new Path { Fill = new SolidColorBrush(Colors.Red) };
MyPath.Data = MyPathGeometry;
TransformGroup transf = new TransformGroup();
transf.Children.Add(new TranslateTransform(50, 50));
transf.Children.Add(new ScaleTransform(2, 2));
MyPath.RenderTransform = transf;

我得到一幅这种类型的图画:

相反,如果我以这种方式使用DrawingContext PushTransform方法:

代码语言:javascript
复制
DrawingVisual MyPath = new DrawingVisual();

using (DrawingContext context = MyPath.RenderOpen()) {
   context.PushTransform(new TranslateTransform(50, 50));
   context.PushTransform(new ScaleTransform(2, 2));
   context.DrawGeometry(Brushes.Red, null, MyPathGeometry);
}

我得到一幅这种类型的图画:

为什么这两条路径以不同的方式放置?使用PushTransform和RenderTransform有什么区别?如何才能在这两种情况下获得相同的结果?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-05 02:35:00

不同之处只在于应用转换的顺序。

在第一种情况(TransformGroup)中,首先平移(50,50),然后缩放(2,2)。在第二种情况下(PushTransform),首先缩放,然后转换。

TransformGroup中的转换是以顺序的、先进先出的顺序执行的,而推入的转换是以类似堆栈的或后进先出的顺序执行的。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10453095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档