让我们假设我有足见其在缩放的方式源的图像,我怎么能使用MouseMove事件的标签,以显示或文本块的像素位置的光标是什么?
(我需要的像素坐标图像相对于不坐标于其尺寸)
提前致谢。
让我们假设我有足见其在缩放的方式源的图像,我怎么能使用MouseMove事件的标签,以显示或文本块的像素位置的光标是什么?
(我需要的像素坐标图像相对于不坐标于其尺寸)
提前致谢。
你可以找到从ImageSource的实际像素高度和宽度。
ImageSource imageSource = image.Source;
BitmapImage bitmapImage = (BitmapImage) imageSource ;
现在,因为你得到了在Image控件中显示的图像。 您可以轻松地映射鼠标位置的像素比例。
pixelMousePositionX = e.GetPosition(image).X * bitmapImage.PixelWidth/image.Width;
pixelMousePositionY = e.GetPosition(image).Y * bitmapImage.PixelHeight/image.Height;
玩得开心
苡乐
如果图像的XAML如下:
<Border Grid.Row="1" Grid.Column="0"
BorderThickness="3"
BorderBrush="BlueViolet">
<Image x:Name="Image_Box"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
Source="8.jpg"
Stretch="Uniform"
MouseMove="ImageBox_OnMouseMove"
/>
</Border>
也许Image
控件的宽度double.Nan,所以我们需要使用ActualWidth
财产。 因此,代码如下:
private void ImageBox_OnMouseMove(object sender, MouseEventArgs e)
{
ImageSource imageSource = Image_Box.Source;
BitmapSource bitmapImage = (BitmapSource)imageSource;
TextBoxCursor_X.Text =( e.GetPosition(Image_Box).X * bitmapImage.PixelWidth / Image_Box.ActualWidth).ToString();
TextBoxCursor_Y.Text = (e.GetPosition(Image_Box).Y * bitmapImage.PixelHeight / Image_Box.ActualHeight).ToString();
}