我正在使用触摸事件调整画布的大小,如下所示:
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。
发布于 2012-11-28 19:25:49
您可以通过从继承Panel来创建自定义画布
以便在布局过程中考虑1.0/非固有尺度.X和1.0/非固有尺度.Y。
在creating custom WPF panels上有一篇文章可能会对你有所帮助(搜索结果,还没读过)。
发布于 2012-11-28 19:15:23
在阅读下面的评论后编辑
在图表情况下,您可能希望使用不同的轴范围重新绘制图表。RenderTransform可能不够精确,实际上您将不得不缩减其他所有内容(轴、标签、网格线等)。
上一个答案,仍然有效的
您必须对子画布进行迭代,并逐个缩放它们。据我所知,没有内置对你想要的东西的支持。
您将必须同时应用反向缩放转换来否定父对象的调整大小,并应用缩放转换来使它们变小。
发布你正在使用的代码,以获得更详细的帮助和/或反馈。
https://stackoverflow.com/questions/13603647
复制相似问题