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
它可以工作,但这会导致复制粘贴代码太多,即使我会使用资源用于画笔,因为我有相当多的用户控件。
此外,我正在设计一个黑暗的主题,并且在设计时间内有白色背景,这不仅不方便。