2013-04-26 112 views
2

對我的生活中,我似乎無法找出設置ContentControl中的背景色的這個簡單的任務:設置ContentControl中的背景色在XAML

<ContentControl x:Name="Content03" 
      Width="130" 
      Height="130" 
      Canvas.Top="50" 
      Canvas.Left="400" 
      Background="Yellow"> 
     <Ellipse Fill="YellowGreen" IsHitTestVisible="True"> 
     </Ellipse> 
    </ContentControl> 

也試過這樣做,使用樣式,但仍然不工作;(

+0

使用模板,http://stackoverflow.com/questions/12334187/setting-background-color-on-a-wpf-contentview – Guy 2013-04-26 10:26:14

回答

5

ContentControl本身沒有視覺上的缺陷,但它是一個子控件的容器,在這個控件上設置一些屬性(比如fontsize等)通常只是讓這些屬性沿着視覺樹向下傳播的一種方式,被兒童控制器(支持它的那些)拾起。

做的最好的事情是這樣的:

<ContentControl x:Name="Content03" 
      Width="130" 
      Height="130" 
      Canvas.Top="50" 
      Canvas.Left="400"> 
     <Grid Background="Yellow"> 
     <Ellipse Fill="YellowGreen" IsHitTestVisible="True"> 
     </Ellipse> 
     </Grid> 
    </ContentControl> 
1

如果你沒有堅持ContentControl中我建議使用邊界代替。

當我遇到同樣的問題時,Border具有相同的Child屬性,我只需要一個孩子,並通過代碼輕鬆地將其切換爲不同的對象。邊框正確使用「背景」等屬性。如果Child爲null,那些屬性也可以工作。

<Border x:Name  = "Content03" 
     Width  = "130" 
     Height  = "130" 
     Canvas.Top = "50" 
     Canvas.Left = "400" 
     Background = "Yellow"> 

    <Ellipse 
     Fill    = "YellowGreen" 
     IsHitTestVisible = "True"> 
    </Ellipse> 

</Border>