wpf怎么在代码里控制Rectangle在窗口中的坐标?

wpf怎么在代码里控制Rectangle在窗口中的坐标?<CanvasName="canvas"><RectangleName="rectImage1"Canvas.Le... wpf怎么在代码里控制Rectangle在窗口中的坐标?

<Canvas Name="canvas">
<Rectangle Name="rectImage1" Canvas.Left="0" Canvas.Top="0" Width="200" Height="200"
IsManipulationEnabled="true">
<Rectangle.RenderTransform>
<MatrixTransform>
<MatrixTransform.Matrix>
<Matrix M11="1" M12="1.0" M21="-1.0" M22="1" OffsetX="900" OffsetY="100" />
</MatrixTransform.Matrix>
</MatrixTransform>
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>

比如我在xaml里有一个定义为rectImage1的Rectangle ,我怎么在代码里更改它的x、y坐标呢?找了半天没找到那个属性啊?新人求解
string msg1 = "Matrix:\t" + "x:" + rectsMatrix.OffsetX + "\t" + "y:" + rectsMatrix.OffsetY;

string msg2 = "Bounds:\t" + "x:" + shapeBounds.Left + "\t" + "y:" + shapeBounds.Top;
System.Windows.MessageBox.Show(msg1 + "\n" + msg2);
这是里面部分通过MessageBox显示坐标的代码

我现在只想单独通过按钮来更改rectImage1的x、y坐标,我该在按钮里写什么?比如坐标由原来900,100变成100,50.
展开
 我来答
xmjkmh
2014-04-21 · 超过31用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:63.7万
展开全部
换个方式写
页面 <Canvas>
<Rectangle Name="rectImage1" Canvas.Left="900" Canvas.Top="100" Width="200" Height="200" IsManipulationEnabled="true">
<Rectangle.RenderTransform>
<MatrixTransform>
<MatrixTransform.Matrix>
<Matrix M11="1" M12="1.0" M21="-1.0" M22="1" />
</MatrixTransform.Matrix>
</MatrixTransform>
</Rectangle.RenderTransform>
</Rectangle>
</Canvas>

后台代码
Canvas.SetLeft(rectImage1,100);
Canvas.SetTop(rectImage1,50);
更多追问追答
追问
最好是用OffsetX="900" OffsetY="100"这些属性,因为之后用键盘控制不同的Rectangle是用这些的。我想通过在按钮里加代码让其还原到原来初始的900,100的位置。请问怎么做?
追答
MatrixTransform trans = rectImage1.RenderTransform as MatrixTransform;
if (trans != null)
{
trans.Matrix = new Matrix(1,1.0,-1,1,100,50);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式