C# Silverlight RenderTransferMorigin如何与TranslateTransform一起工作?
我使用的是Silverlight 3.0+C#+VSTS 2008+.NET3.5。我正在学习以下关于TranslateTransform的教程C# Silverlight RenderTransferMorigin如何与TranslateTransform一起工作?,c#,.net,user-interface,silverlight,visual-studio-2008,C#,.net,User Interface,Silverlight,Visual Studio 2008,我使用的是Silverlight 3.0+C#+VSTS 2008+.NET3.5。我正在学习以下关于TranslateTransform的教程 我的问题是RenderTransferMorigin如何与TranslateTransform一起实现视觉效果?我的问题来自下一节--“3.可调整大小的元素和RenderTransferMorigin”节。翻译转换的结果不受RenderTransferMorigin的影响 如果您指定一个元素应该被右转200 px,那么它实际上与原点当前所在的位置无关
我的问题是RenderTransferMorigin如何与TranslateTransform一起实现视觉效果?我的问题来自下一节--“3.可调整大小的元素和RenderTransferMorigin”节。翻译转换的结果不受RenderTransferMorigin的影响 如果您指定一个元素应该被右转200 px,那么它实际上与原点当前所在的位置无关 示例 如果您有一个宽度为100的矩形,并且要将RenderTransferMorigin`的x部分指定为0.5。x中的原点将是矩形(中心)中的50个像素,左边缘相对于原点的位置将是-50 如果将其在X中平移100,则左边缘现在相对于原点为50。因为原点本身已经是50,所以左边缘从其原始位置移动的总距离将是(50+50)100,正如您所期望的那样
现在仅将
renderTransferMorigin
从0.5更改为-0.5。现在,原点将是矩形左边缘左侧的50个像素(也就是说,它将是-在50)。矩形左边缘相对于原点的位置为50。当转换到新位置时,它将相对于原点位于150。矩形从其原始位置移动的总距离将再次达到您预期的(-50+150)100。“平移变换的结果不受RenderTransferorMorigin的影响。”--您的意思是文档错了吗?@George:文档有点混乱。它讨论的是不涉及任何“调整大小”的翻译转换。基本思想是正确的,它不属于该文档,因为它只与其他变换(如缩放)相关。矩形元素在变换之前的左边缘。@geoge2:因为左边缘相对于原点开始于-50-50+100=50。@George2:我站在房子的前门,面朝里,在我身后30米处是对面的房子。我选择我的前门作为原点,我当前处于位置0。我沿着走廊向下平移3米,我现在在哪里?相对于原点3米。重置,我回到门口。我选择对面的房子作为起点,我的位置是30。我沿着走廊向下平移3米,我现在在哪里?相对于原点33米。我站在一个不同的地方,而不是在以前的转变。否。选择作为原点的点对结果没有影响。