C# WPF-在dblclick事件上在画布上移动形状

C# WPF-在dblclick事件上在画布上移动形状,c#,wpf,canvas,shapes,C#,Wpf,Canvas,Shapes,当用户双击鼠标时,我正在画布上移动一个矩形。代码中有一个错误导致矩形离开屏幕。我怎样才能阻止这种事情发生 这是我的XAML: <Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Mai

当用户双击鼠标时,我正在画布上移动一个矩形。代码中有一个错误导致矩形离开屏幕。我怎样才能阻止这种事情发生

这是我的XAML:

<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" SnapsToDevicePixels="True" BorderThickness="1" ScrollViewer.HorizontalScrollBarVisibility="Visible" WindowStyle="ToolWindow" MouseDoubleClick="mouse_dblClick">
    <Canvas Height="350" Width="525" SnapsToDevicePixels="True">
        <Rectangle Canvas.Left="100" Canvas.Top="10" x:Name="Rect" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="47" Stroke="Black" VerticalAlignment="Top" Width="247" Margin="128,182,0,0" RenderTransformOrigin="-2.021,-1.247"/>
    </Canvas>
    <Window.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="Black" Offset="0"/>
            <GradientStop Color="#FF51AC3D" Offset="1"/>
        </LinearGradientBrush>
    </Window.Background>
</Window>

矩形放置在单击位置的右侧128像素,底部182像素,因为您已经设置了
Margin=“128182,0,0”
。感谢您发现+Clemens。
        private void mouse_dblClick(object sender, MouseButtonEventArgs e)
    {
        this.Title = string.Format("{0}",e.GetPosition(this).ToString());
        Canvas.SetLeft(this.Rect, e.GetPosition(this).Y);
        Canvas.SetTop(this.Rect, e.GetPosition(this).X);

    }