图像在拖动/缩放时不会停留在边框/画布内

本文关键字:边框 停留在 布内 拖动 缩放 图像 | 更新日期: 2023-09-27 18:30:41

我有一个带有画布,边框和图像的WPF应用程序。

<Canvas Height="300" Width="400" Background="Gray" Margin="10,210,15,150" Grid.Row="1">
    <Border BorderBrush="Black" BorderThickness="2" Width="400" Height="250" Name="bord" />
    <Image Name="x" Stretch="Fill" MouseWheel="x_MouseWheel" Width="359" Height="230"  Grid.Row="1" Opacity="1" MouseLeftButtonDown="x_MouseLeftButtonDown" MouseMove="x_MouseMove" RenderTransformOrigin="0.5,0.5" MouseLeftButtonUp="x_MouseLeftButtonUp">
        <Image.Source>
            <BitmapImage UriSource="/ProjectOwn;component/Images/First.png"/>
        </Image.Source>
    </Image>
</Canvas>

问题如下:我可以拖动图像并放大或缩小,但它不会停留在我的边框/画布内,所以我可以在鼠标单击它时将其移动到整个界面上,这不好(如果我缩小图片,图片也会过大,它会占用整个 wpf 窗口)。我该如何解决?

图像在拖动/缩放时不会停留在边框/画布内

如果您不希望Canvas子项超出其区域,则需要将ClipToBounds设置为 true

<Canvas ... ClipToBounds="True">