2010-01-20 6 views
12

Ich brauche eine Ressource, um die Farbe des Hauptfensters in meiner WPF-Anwendung festzulegen. Da die Ressourcendeklaration nach der Fensterdeklaration folgt (ich importiere ein Ressourcenwörterbuch), kann ich keine Background -Eigenschaft im Objekt Window verwenden. Also dachte ich, ich würde den Hintergrund so einstellen:Einstellen der Fensterhintergrundfarbe mit der Ressource

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

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

Meine Syntax ein bisschen ausgeschaltet ist, da das Objekt nicht mit einer Bürste Ressource für seine Eigenschaft Color nehmen. Was ist das Problem? Danke für Ihre Hilfe.

Antwort

15

Versuchen Sie, diese

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

Die Lösung besteht darin, Ihre Ressourcen stattdessen in App.xaml zu speichern. Auf diese Weise können Sie den Hintergrund auf Ihrem Fenster ohne Probleme einstellen.

+0

eine Lösung suchen, aber nicht die Lösung. Und es ist schlecht geeignet für Anwendungen, die mehrere Projekte umfassen, wie z. B. Prism-Apps. –

16

dies funktioniert:

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

die Hauptsache ist hier zu beachten ist, das x: Name im Fenster, und die Dynamic im Hintergrund Eigenschaft

alternativly , das funktioniert auch so gut ....

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

Als eine Randnotiz, wenn Sie Theming für Sie Anwendung verwenden möchten, sollten Sie in component resource keys

Verwandte Themen