设置内容控件的背景

Gor*_*ran 7 wpf wpf-controls

<UserControl .....>
  <DataTemplate DataType="{x:Type vm:AViewModel}">
    <vw:AView />
  </DataTemplate>

  <DataTemplate DataType="{x:Type vm:BViewModel}">
    <vw:BView />
  </DataTemplate>

  <ContentControl x:Name="chartScreen" Content="{Binding Screen}" Background="Yellow" />
</UserControl>
Run Code Online (Sandbox Code Playgroud)

从上面的代码中可以看出,ContentControl通过绑定到ViewModel的Screen属性来设置其内容.Screen属性将返回AViewModel或BViewModel的实例,具体取决于某些条件.问题是,当在屏幕上加载UserControl时,Screen属性为null,因此还没有设置内容.此时,我想为ContentControl设置一些背景,但我找不到如何做到这一点的方法?背景="黄色"什么都不做......

任何想法如何设置ContentControl的背景?即使内容显示AView或Biew,也应该始终应用此背景,或者为null.

Viv*_*Viv 7

只是包装您ContentControlBorder

<Border Background="Yellow">
  <ContentControl x:Name="chartScreen"
                  Content="{Binding Screen}" />
</Border>
Run Code Online (Sandbox Code Playgroud)

如果你拥有的UserControl只是你自己ContentControl,那么就把它Background放在UserControl自己身上.这也将删除额外的Border.