2017-08-28 85 views
0

道歉,如果这已被问,但我找不到答案。我有一些需要动态背景的项目(Windows,UserControls和DockPanels)。你可以在WPF中设置一个元素的背景吗?

一个Canvas对象很适合我的动态绘图需求,但是我无法弄清楚的是我可以如何(或者甚至可以)设置一个<Canvas>对象作为控件对象的背景值。

可以这样做,如果是的话,怎么样?

+2

看看VisualBrush。 – Clemens

+1

所以你想要把'Canvas'(和它里面的所有元素)作为另一个'Control'的背景吗? – XAMlMAX

回答

1

是的,你可以做到这一点。

<Window.Background> 
    <VisualBrush> 
     <VisualBrush.Visual> 
      <Rectangle Width="50" Height="50" Fill="Red"></Rectangle><!-- Replace this with a reference to your Canvas--> 
     </VisualBrush.Visual> 
    </VisualBrush> 
</Window.Background> 

代码从this site引用是有很多,你可以与背景做的一样好。像一套剪裁等...
注意
因为你没有指定你正在开发它的语言,我在我即用即C#语言提供答案,我不使用VB

+2

让我微笑......一个纯XAML答案,关于VB.Net与C方面的说明# – grek40

+0

我相信这是答案。我在几个方向被撕裂。当我有机会时,我会确认。 – RLH

+0

我会给这个upvote。错误使我无法返回相关的代码。为了清楚起见,我可以在'中放置一个'',还是''区域基本上是一个画布式对象? – RLH

0

你想设置一个控件的背景属性与一个画布的“内容”已经填充元素? 如果是这样,是的;您可以完成此任务,从您的Canvas创建一个画笔。要做到这一点,你需要VisualBrush类。在VB.NET中,使用这样的:

Dim oBrush As New VisualBrush(myCanvas) 
myControl.Background = oBrush 

祝好运,代码

相关问题