【发布时间】:2014-05-20 06:29:29
【问题描述】:
我正在 Silverlight 5 中创建一个设计环境,用户可以从位于屏幕左侧的面板中拖放一些项目。用户还可以通过鼠标和滚动条缩放/平移场景。 Canvas 有一个 TranslateTransform,它在平移场景时被操纵,但我不希望我的 UI 元素被平移。如何排除这些元素受到平移过程的影响?
我在 XAML 中使用以下画布转换:
<Canvas.RenderTransform>
<TransformGroup x:Name="transformGroup">
<ScaleTransform x:Name="CanvasScale" ScaleX="1.0" ScaleY="1.0"></ScaleTransform>
<TranslateTransform x:Name="CanvasPan" ></TranslateTransform>
</TransformGroup>
</Canvas.RenderTransform>
然后我将代码中的 CanvasScale 和 CanvasPan 更改为缩放/平移场景,但所有对象(包括 UI 元素)都会受到影响,我的场景有点复杂,所以我认为最好(或唯一)的方法是排除 UI 元素来自这些转换。
【问题讨论】:
-
听起来是一个有趣的项目,但很难想象你的意思?你是说你只是想(例如)一些按钮和随机的 UI 东西留在原地,而你的画布东西在它们下面的东西分别做它们的事情?
-
是的,你可以想象我的应用程序类似于 MS-Paint,我有一些标准的 UI(状态栏、工具栏和...)和一个用户可以在其中绘制的场景。当用户平移场景时,UI 对象应该保持不动,这怎么可能?
标签: silverlight canvas