PRISM WPF应用程序更改在视图添加时作为网格背景实现的ShellView背景

时间:2011-08-18 17:17:16

标签: wpf prism

我们有一个PRISM WPF - MVP - 应用程序,我们有shell通过Grid.Background属性显示应用程序徽标。现在,当在主要区域上添加视图时,背景在背景中看起来很奇怪。由于shell上显示的视图是透明的,所以这种情况正在发生。 经过几次头脑风暴后,我们唯一的解决方案是注册RegionManager.Regions [MainRegion] .Views.CollectionChanged事件并在事件处理程序中添加逻辑,以便:如果其中没有视图,则要求视图显示背景其他要求它隐藏背景。

还有更好的选择吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道您的MainRegion是什么,但您可以随时将其设置为Style。这适用于任何地区的一些细微更改,但如果您的MainRegion只是一个Window,这里有一个示例:

<Window x:Class="MyNamespace.Shell"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:prism="http://www.codeplex.com/prism"
        Title="Shell"
        prism:RegionManager.RegionName="MainRegion">

    <Window.Style>
        <Style TargetType="{x:Type Window}">
            <Setter Property="Background" Value="White" />
            <Style.Triggers>
                <Trigger Property="Content" Value="{x:Null}">
                    <Setter Property="Background" 
                            Value="{StaticResource LogoBrush}" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Style>
</Window>