Designer在设计时忽略了BasedOn Style,在运行时工作

时间:2015-02-05 19:01:20

标签: wpf xaml visual-studio-2013 expression-blend

WPF设计师在设计时推断出要显示的样式的能力似乎存在缺陷或限制。

我正在为我的应用设置外观并在app.xaml中有一个基本窗口样式:

 <Application.Resources>
        <Style x:Key="WindowStyleBase" TargetType="ContentControl">
            <Setter Property="Background" Value="Red" />
        </Style>

        <Style x:Key="WindowStyle" TargetType="{x:Type Window}" BasedOn="{StaticResource WindowStyleBase}">
            <!--  <Setter Property="Background" Value="Red" /> -->
        </Style>

    </Application.Resources>

我使用静态资源WindowStyle

来修剪我的窗口
<Window x:Class="XamlBasedOnBreaker.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Style="{StaticResource WindowStyle}">
    <Grid>
    </Grid>
</Window>

现在,当我运行应用程序时,我看到红色背景,但在visual studio 2013的设计时和表达式混合中,背景为白色(默认)。设计师没有采用合适的风格。

我该如何解决这个问题?我有多个用户控件等,我想要WindowStyle,这就是为什么我将样式子类化并使用BasedOn。如果我将红色移动到WindowStyle而不是WindowStyleBase它可以工作,但这会导致复制粘贴代码太多,即使我会使用资源用于画笔,因为我有相当多的用户控件。

此外,我正在设计一个黑暗的主题,并且在设计时间内有白色背景,这不仅不方便。

0 个答案:

没有答案