【发布时间】:2010-10-19 08:34:45
【问题描述】:
使用以下代码,我无法让背景图像以其原始大小显示(它总是大一点)。我尝试更改 Stretch 属性,但“无”似乎是最合适的值。
<Canvas Width="500" Height="500">
<Canvas.Background>
<ImageBrush
ImageSource="{Binding ElementName=w_window, Path=BackgroundImagePath}"
Stretch="None"
AlignmentX="Left"
AlignmentY="Top"
/>
</Canvas.Background>
</Canvas>
在下图中,您可以在左侧看到我的应用,在右侧看到照片查看器(设置为原始大小)。
有什么建议吗? (顺便说一句,设置ClipToBounds="True" 不起作用。)
看来我的问题不仅限于图像是背景时。以下代码(其中 Image 是唯一元素)存在相同的大小问题。不只是我的机器有这个问题(即应用在其他机器上也有这个问题)。
<Window x:Class="DiagramDesigner.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="300" Width="1000">
<Image
Source="C:\Users\patk\Downloads\Bottom_wnums.jpg"
Stretch="None"
HorizontalAlignment="Left"
VerticalAlignment="Top"
/>
</Window>
【问题讨论】:
-
你上面写的(用硬编码文件替换 ImageSource)对我来说很好。可以加个截图吗?
-
您上面的 Canvas 是否有可能被包装在 ViewBox 控件中?
-
@karmicpuppet:不,但我注意到 ImageBrush 具有 Viewbox 和 Viewport 属性。我应该尝试手动设置它们吗?
-
嗯...我认为没有必要。我在上面尝试了您的代码(就像 Wonko 所做的那样),它对我来说也很好用。我想知道,您的 Canvas 的父控件是什么?
-
感谢您的帮助,Wonko 和 karmicpuppet。我应该尝试使用另一张图片 - 经验教训(希望 :-)。
标签: .net wpf image background-image