1
我想在用户单击的画布上的点绘制矩形。我希望我的窗口可缩放,因此我已将Canvas放置在视图框中,但这不会在指定点上绘制矩形,而是基于视框的缩放而变化。 这里是我的代码在wpf中的viewbox上单击点绘制形状
<Viewbox MouseLeftButtonDown="Viewbox_MouseLeftButtonDown" Width="300" Height="300">
<Canvas Name="Surface" MouseLeftButtonDown="Surface_MouseRightButtonDown" Background="Transparent" Width="300" Height="300"></Canvas>
</Viewbox>
这里是视框中鼠标按下事件
private void Viewbox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Rectangle rect = new Rectangle { Width = 10, Height = 10, Fill = Brushes.Black };
Surface.Children.Add(rect);
Canvas.SetLeft(rect, e.GetPosition(this).X);
Canvas.SetTop(rect, e.GetPosition(this).Y);
}
结果是,即使我打电话画布鼠标事件一样。