0

ユーザーがマウスをダブルクリックすると、キャンバス上で四角形を移動しています。コードにバグがあり、四角形が画面からはみ出してしまいます。どうすればそれを防ぐことができますか?

ここに私の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>

ここに私のC#コードがあります:

        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);

    }
4

0 に答える 0