首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不影响子代的RenderTransform可能相反

不影响子代的RenderTransform可能相反
EN

Stack Overflow用户
提问于 2012-11-28 19:09:20
回答 2查看 728关注 0票数 0

我正在使用触摸事件调整画布的大小,如下所示:

代码语言:javascript
复制
e.Handled = true;
var transformation = MyCanvas.RenderTransform as MatrixTransform;
var matrix = transformation == null ? Matrix.Identity :transformation.Matrix;

matrix.ScaleAt(e.DeltaManipulation.Scale.X,
               e.DeltaManipulation.Scale.Y,
               e.ManipulationOrigin.X,
               e.ManipulationOrigin.Y);

MyCanvas.RenderTransform = new MatrixTransform(matrix);

画布有几个子画布。我不想调整它们的大小,实际上我需要它们变得更小。所以看了看RenderTransform.Inverse,但我没有任何的joy。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-28 19:25:49

您可以通过从继承Panel来创建自定义画布

  1. 一个新的依赖属性:将变换的比例绑定到MeasureOverride()和ArrangeOverride()方法的property
  2. overrides
    1. 之间的绑定。

以便在布局过程中考虑1.0/非固有尺度.X和1.0/非固有尺度.Y。

creating custom WPF panels上有一篇文章可能会对你有所帮助(搜索结果,还没读过)。

票数 1
EN

Stack Overflow用户

发布于 2012-11-28 19:15:23

在阅读下面的评论后编辑

在图表情况下,您可能希望使用不同的轴范围重新绘制图表。RenderTransform可能不够精确,实际上您将不得不缩减其他所有内容(轴、标签、网格线等)。

上一个答案,仍然有效的

您必须对子画布进行迭代,并逐个缩放它们。据我所知,没有内置对你想要的东西的支持。

您将必须同时应用反向缩放转换来否定父对象的调整大小,并应用缩放转换来使它们变小。

发布你正在使用的代码,以获得更详细的帮助和/或反馈。

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

https://stackoverflow.com/questions/13603647

复制
相关文章

相似问题

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