2011-02-28 89 views
2

我有一个需要使用各种大小的自定义图像的图形背景的画布,但我想将背景图像的高度和宽度绑定到某处的某些属性。现在我有一个图像显示为背景,但其大小是固定的。事实证明,图像和图像刷的宽度和高度属性是只读的。无论如何要绑定宽度和高度?画布背景的绑定大小

p.s我已经尝试了视口,但它使用了一个矩形对象,它的宽度和高度不是依赖属性。然后我尝试使用视口中的一个图块并将它放在一个矩形中,然后我可以调整矩形的大小以实现我想要的效果,但我无法弄清楚如何将矩形放置为画布的背景。有任何想法吗?提前致谢。

回答

3

一个简单的方法是使用VisualBrush作为Canvas的背景。拉伸设置为无,然后绑定宽度和ImageVisual

<Canvas ...> 
    <Canvas.Background> 
     <VisualBrush Stretch="None"> 
      <VisualBrush.Visual> 
       <Image Source="SomeSource" 
         Stretch="Fill" 
         Width="{Binding ...}" 
         Height="{Binding ...}"/> 
      </VisualBrush.Visual> 
     </VisualBrush> 
    </Canvas.Background> 
    <!--...--> 
</Canvas> 
+0

谢谢,我简直不敢相信这是简单的..我有可视化刷,视口,图像刷和吨的东西,明白了工作,但不像这样简单。谢谢。 – 2011-02-28 19:46:13

1

不能说我设法跟随你想要做什么,但你可以使用VisualBrush来把矩形作为画布的背景。

我确信你正在做的事情可以很容易地解决 - 但我真的不明白你在做什么。

+0

对不起身高我真的不知道如何将这种更清楚地解释。我想简单地说,我试图在运行时使用绑定动态调整画布背景图像 – 2011-02-28 16:30:21