2010-01-20 12 views
12

Necesito usar un recurso para establecer el color de la ventana principal en mi aplicación WPF. Como la declaración de recursos viene después de la declaración de ventana (estoy importando un diccionario de recursos), no puedo usar una propiedad Background en el objeto Window. Por lo tanto, pensé que iba a establecer el fondo de esta manera:Configuración del color de fondo de la ventana usando el recurso

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

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

Mi sintaxis es un poco apagado, ya que el objeto no tomará un recurso de pincel por su propiedad Color. ¿Cuál es la solución? Gracias por tu ayuda.

Respuesta

15

Prueba este

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

La solución es poner sus recursos en App.xaml en su lugar. De esa manera puede establecer el fondo en su ventana sin ningún problema.

+0

Una solución, pero no la solución. Y no es adecuado para aplicaciones que involucran proyectos múltiples, como las aplicaciones Prism. –

16

esto funciona:

<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> 

lo principal a tener en cuenta es la x: nombre en la ventana, y el DynamicResource en la propiedad del fondo

Alternativly , esto también funciona ...

<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> 

Como nota al margen, si desea utilizar el tematizado para su aplicación, debe consultar component resource keys

Cuestiones relacionadas