我在画布中有一个图像,用户可以单击图像,用户单击的位置会出现一个绿点。
我想将图像保存在内存流上供以后使用,所有图像保存都很好,除了似乎没有正确绘制的点,我的猜测是关于我必须应用的屏幕比例来绘制绿点因为显示的图像比源图像小。
XAML:
<Canvas x:Name="ImageCanvas"
Grid.Column="1"
Background="Transparent">
<Image x:Name="SelectedPartImage"
Width="{Binding ElementName=ImageCanvas, Path=ActualWidth}"
Height="{Binding ElementName=ImageCanvas, Path=ActualHeight}"
Panel.ZIndex="0"
MouseLeftButtonDown="OnMouseLeftButtonDown"
Source="{Binding SelectedPartImageSource}" />
<Ellipse x:Name="EllipseClick"
Width="15"
Height="15"
Panel.ZIndex="1"
Fill="{StaticResource GreenColor}"
Visibility="Hidden" />
</Canvas>
DrawEllipse(我用来绘制椭圆的方法,AdjustToCanvas 只是避免用户在图像所在的画布外单击)
public void DrawEllipse()
{
// Adjust To Canvas
(double x, double y) = AdjustToCanvas(Mouse.GetPosition(ImageCanvas));
// Center Ellipse
x -= EllipseClick.Width / 2;
y -= EllipseClick.Height / 2;
Canvas.SetLeft(EllipseClick, x);
Canvas.SetTop(EllipseClick, y);
}
繁星淼淼
相关分类