【问题标题】:Setting Window background color using resource使用资源设置窗口背景颜色
【发布时间】:2011-01-07 07:01:35
【问题描述】:

我需要使用资源来设置 WPF 应用程序中主窗口的颜色。由于资源声明在窗口声明之后(我正在导入资源字典),所以我不能在 Window 对象中使用 Background 属性。所以,我想我会这样设置背景:

<Window.Resources>
...
</Window.Resources>

<Window.Background>
    <SolidColorBrush Color="{StaticResource WindowBackgroundBrush}"  />
</Window.Background>

我的语法有点不对劲,因为对象不会为其 Color 属性获取画笔资源。解决方法是什么?感谢您的帮助。

【问题讨论】:

    标签: wpf resources colors background window


    【解决方案1】:

    试试这个

    <Window.Background>
        <StaticResource ResourceKey="WindowBackgroundBrush" />
    </Window.Background>
    

    【讨论】:

      【解决方案2】:

      这行得通:

      <Window x:Class="Moria.Net.MainWindow"
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              Title="MainWindow" 
              x:Name="window"
              Background="{DynamicResource WindowBrush}"
              Width="800" Height="600">
          <Window.Resources>
              <SolidColorBrush x:Key="WindowBrush" Color="LightGray"/>
          </Window.Resources>
      </Window>
      

      这里要注意的主要是窗口中的 x:name 和 Background 属性中的 DynamicResource

      另外,这也有效....

        <Window.Resources>
              <SolidColorBrush x:Key="WindowBrush" Color="LightGray"/>
          </Window.Resources>
          <Window.Style>
              <Style TargetType="{x:Type Window}">
                  <Setter Property="Background" Value="{StaticResource WindowBrush}"/>
              </Style>
          </Window.Style>
      

      附带说明,如果您想为您的应用程序使用主题,您应该查看component resource keys

      【讨论】:

        【解决方案3】:

        解决方案是将资源放在 App.xaml 中。这样您就可以毫无问题地在 Window 上设置背景。

        【讨论】:

        • 一个解决方案,但不是解决方案。它不适合涉及多个项目的应用程序,例如 Prism 应用程序。
        猜你喜欢
        • 1970-01-01
        • 2015-10-23
        • 2021-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-19
        • 2014-01-22
        • 1970-01-01
        相关资源
        最近更新 更多