WPF中仅限设计时的背景色?

Duc*_*tro 33 wpf designer visual-studio-2010

在WPF XAML还有就是方便DesignHeightDesignWidth,例如在代码

<UserControl ... d:DesignHeight="500" d:DesignWidth="500" ... />
Run Code Online (Sandbox Code Playgroud)

这很棒,因为我可以使用代表性不锁定的控件大小来构建布局.

但是,我经常构建深色UI,其中标签等需要为白色,但我的控件仍然需要透明的背景色.这会产生设计时的不便,因为白色似乎是设计器中透明控件的默认背景颜色,导致无法读取的白色白色标签.

是否有设置时间背景颜色的方法或策略,与DesignHeight/DesignWidth具有类似的便利性?

Seb*_*ari 33

您可以在用户控件上设置d:DesignStyle类型的未记录属性Style.此样式仅应用于设计器,不在运行时使用.

你这样使用它:

<UserControl ... d:DesignStyle="{StaticResource MyDesignStyle}" />
Run Code Online (Sandbox Code Playgroud)

或者像这样:

<UserControl ...>
    <d:DesignerProperties.DesignStyle>
        <Style TargetType="UserControl">...</Style>
    </d:DesignerProperties.DesignStyle>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

但请注意,在Style属性上设置的任何值(在运行时使用的值)也将覆盖DesignStyle设计器中的值.

  • 在 .NET Core WPF 中尝试第二种方法。我在“Style”下方看到一条蜿蜒的线,上面写着“对象引用未设置到对象的实例”,并且背景没有改变。 (4认同)
  • @TheMuffinMan 在上面的第二个示例代码部分中,将 `&lt;Setter Property="Background" Value="White" /&gt;` 添加到 `Style` 节点以将背景颜色设置为白色。 (3认同)

Oyb*_*bek 9

我发现你可以自己做一个.Silverlight和WPF设计器中的自定义设计时属性是如何为Silverlight和WPF执行此操作的教程.


Duc*_*tro 8

我的答案在这里找到:XAML编辑器的黑色背景.有许多选择,包括System.ComponentModel.DesignerProperties.GetIsInDesignMode(this)在运行时检查.