Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将窗体视口坐标转换为真实图像坐标_C#_Silverlight_Image_C# 4.0_Silverlight 4.0 - Fatal编程技术网

C# 将窗体视口坐标转换为真实图像坐标

C# 将窗体视口坐标转换为真实图像坐标,c#,silverlight,image,c#-4.0,silverlight-4.0,C#,Silverlight,Image,C# 4.0,Silverlight 4.0,我有一个大图像:(14848像素宽*14336像素高)我使用深度缩放工具将文件导出到silverlight,并使用“多比例图像”控件。 多尺度图像是400*400像素。 在项目开始后,我希望当我单击图像中的某些位置时,了解真实图像的“真实”坐标,而不是多尺度控件的宽度,考虑到平移和缩放因子。。。 如果有办法知道的话,我希望你们能帮助我。 提前准备好 这方面的MSDN文档毫无希望。实际上定义了以下术语: 逻辑坐标–是一个标准化值(0到1),表示图像本身(而不是控件)中的坐标 元素坐标–是实际控制

我有一个大图像:(14848像素宽*14336像素高)我使用深度缩放工具将文件导出到silverlight,并使用“多比例图像”控件。 多尺度图像是400*400像素。 在项目开始后,我希望当我单击图像中的某些位置时,了解真实图像的“真实”坐标,而不是多尺度控件的宽度,考虑到平移和缩放因子。。。 如果有办法知道的话,我希望你们能帮助我。
提前准备好

这方面的MSDN文档毫无希望。实际上定义了以下术语:

  • 逻辑坐标–是一个标准化值(0到1),表示图像本身(而不是控件)中的坐标
  • 元素坐标–是实际控制坐标。例如,在宽度为800、高度为400的多尺度图像中,当鼠标位于中心时,元素坐标为400400。这些坐标没有标准化
[我从博客文章中复制了这个定义,但这个例子似乎是错误的:元素坐标应该是400200。]

很明显,您需要将鼠标坐标转换为图像坐标

图像坐标在[0,1]范围内。只需乘以原始图像的宽度/高度即可获得原始图像中的像素坐标