5
我有一個畫布作爲圖像查看器。它的背景用於放置圖像,我想在其上放置另一張圖像。所以,這種情況是這樣的:WPF:如何避免圖像脫離畫布的邊界?
<Canvas Name="VisorCanvas" Height="514" Width="720">
<Canvas.Background>
<ImageBrush />
</Canvas.Background>
<Image Name="foreground" />
</Canvas>
我在後面的代碼(C#)中動態插入圖像。
問題是,如果圖像太大,則圖像超出畫布的邊界。例如:我有一個不相關的背景圖像和我想要展示通過以下方式畫布面板(在其背景之上)內的廣場:
- 在廣場上的圖像將被調整任何情況下。
- 如果它小於畫布的尺寸,我只是展示它。
- 如果它在任何尺寸(寬度或高度)上都更大,我需要將其裁剪或將透明設置爲圖像的一部分。這樣做,我實現了電視模式或類似的東西,因爲這個數字總是會在畫布的「內部」(儘管一部分被裁剪)
我該怎麼做?我試過了:
- 通過使用CroppedBitmap裁剪圖像,但它不準確。
- 要通過額外的opacityMask圖像使用透明度,但我需要從原始圖像創建一個遮罩位圖(具有透明度),我不知道該怎麼做。
- 要使用RenderTargetBitmap創建「照片」並用此方法的結果替換圖像,但我不能。
我將不勝感激如果有人能夠闡明它。
ClipToBounds!修復了我遇到的一些Z訂單問題。 – 2015-09-24 02:42:10
爲我工作。爲了澄清,應該在父對象上設置ClipToBounds。 – 2016-01-01 02:47:30
@TylerPantuso by'parent'你的意思是'Canvas'嗎?如果是這樣,那就是我在第一句中所說的。如果不是,你是什麼意思?你是否發現你需要將它設置在畫布的父級?如果是這樣,這是不正常的。 – 2016-01-01 14:16:46