我有一个画布作为图像查看器。它的背景用于放置图像,我想在其上放置另一个图像。所以,场景是这样的:
<Canvas Name="VisorCanvas" Height="514" Width="720">
<Canvas.Background>
<ImageBrush />
</Canvas.Background>
<Image Name="foreground" />
</Canvas>
我在后面的代码中动态插入图像(C#)。
问题在于,如果图像太大,则图像会超出Canvas的边框。例如:我有一个不相关的背景图像,我想通过以下方式在Canvas面板中显示一个正方形(在其背景之上):
我该怎么做?我试过了:
如果有人能够阐明它,我将不胜感激。
答案 0 :(得分:26)
在ClipToBounds="True"
元素中设置Canvas
,这将阻止图片超出画布的边框。
您可能还想考虑不使用Image
元素。您可以使用Rectangle
Fill
设置为ImageBrush
,因为您可以使用Viewbox
和Viewport
属性来选择源图像的哪个部分你想要的,以及你想要的输出大小。 (将ViewportUnits
设置为Absolute
可以精确控制绘制区域的尺寸。)