C# 如何在silverlight中设置图像的位置

C# 如何在silverlight中设置图像的位置,c#,image,silverlight,position,C#,Image,Silverlight,Position,我得到了拖放图像,它位于ContentPanel中。在MouseLeave事件中,我得到图像的位置,然后我需要将其与网格对齐。试图用Canvas做,但什么也没发生。当我试图改变利润率时,位置是完全错误的 代码: 那么如何设置图像的位置呢?一种方法是对图像应用平移变换 类似的方法应该会奏效: Image rs = (Image)sender; GeneralTransform gt = rs.TransformToVisual(ContentPanel); Point offset = gt.Tr

我得到了拖放图像,它位于ContentPanel中。在MouseLeave事件中,我得到图像的位置,然后我需要将其与网格对齐。试图用Canvas做,但什么也没发生。当我试图改变利润率时,位置是完全错误的

代码:


那么如何设置图像的位置呢?

一种方法是对图像应用平移变换

类似的方法应该会奏效:

Image rs = (Image)sender;
GeneralTransform gt = rs.TransformToVisual(ContentPanel);
Point offset = gt.Transform(new Point(0, 0));

//create a translate transform 
TranslateTransform tt = new TranslateTransform();

//apply the required offset
tt.X = offset.X;
tt.Y = offset.Y;

//apply the transform to the image
rs.RenderTransform = tt;

double controlTop = offset.Y;
double controlLeft = offset.X;
tb.Text = Convert.ToInt16(controlLeft / 40).ToString();
tb2.Text = Convert.ToInt16(controlTop / 40).ToString();
double newLeft = Convert.ToInt16(controlLeft / 40) * 40;
double newTop = Convert.ToInt16(controlTop / 40) * 40;

谢谢。TranslateTransform让一切都变得完美。
Image rs = (Image)sender;
GeneralTransform gt = rs.TransformToVisual(ContentPanel);
Point offset = gt.Transform(new Point(0, 0));

//create a translate transform 
TranslateTransform tt = new TranslateTransform();

//apply the required offset
tt.X = offset.X;
tt.Y = offset.Y;

//apply the transform to the image
rs.RenderTransform = tt;

double controlTop = offset.Y;
double controlLeft = offset.X;
tb.Text = Convert.ToInt16(controlLeft / 40).ToString();
tb2.Text = Convert.ToInt16(controlTop / 40).ToString();
double newLeft = Convert.ToInt16(controlLeft / 40) * 40;
double newTop = Convert.ToInt16(controlTop / 40) * 40;