很奇怪的情况。我有以下App.xaml
<Application x:Class="BrokenBG.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.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}" />
</Application.Resources>
</Application>
一个带有样式集的纯空窗口:
<Window x:Class="BrokenBG.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>
当我运行应用程序时,一切都很好。我看到了红色的bg。 但我无法在设计师身上看到它。上面的代码是我在另一个更大的项目中遇到过的一个重复案例。
当我将窗口样式从WindowStyle
更改为WindowStyleBase
时,我可以直接在设计器中看到红色背景颜色。
这可以修复吗?我的窗口有一个黑暗的主题,因此我无法在Visual Studio / Blend中设计视图,因为在运行时背景是白色和黑色(我的文本是白色的)
看起来设计师在使用BasedOn解析时遇到了问题? (不确定)
答案 0 :(得分:2)
有一件事可行,即使它不会编译。 您可以在基于动态资源的基础上更改staticresource。
它会突然开始在设计师工作,但这不会编译。
我甚至将红色变为蓝色,设计师更新了。