gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:58 25 4
gpt4 key购买 nike

我得到了位于 ContentPanel 中的拖放图像。在 MouseLeave 事件中,我得到了图像的位置,然后我需要将它与我的网格对齐。试图用 Canvas 来做,但没有任何反应。当我尝试更改边距时,位置完全错误。

代码:

private void MouseLeave(object sender, MouseEventArgs e)
{
Image rs = (Image)sender;
GeneralTransform gt = rs.TransformToVisual(ContentPanel);
Point offset = gt.Transform(new Point(0, 0));
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;
//rs.Margin = new Thickness(newLeft, newTop, 0, 0);
//((Image)ContentPanel.Children[11]).SetValue(Canvas.LeftProperty, newLeft);
//((Image)ContentPanel.Children[11]).SetValue(Canvas.TopProperty, newTop);
}

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

最佳答案

一种方法是对您的图像应用平移转换?

类似的东西应该可以工作:

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;

关于c# - 如何在silverlight中设置图像的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15109773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com