Wie man eine Farbe mit dem Wert aus der App.xaml-Code in eine Seite
Ich habe erklärt, eine Farbe, die ich verwenden werde, eine Menge in meiner Anwendung, und ich möchte in der Lage sein zu rufen, dass bestimmte Farbe innerhalb einer Seite. Diese Farbe wird wahrscheinlich verwendet werden, in der XAML-als auch die code-behind. Im App.xaml habe ich
<Color x:Name="Blue" A="255" R="35" G="85" B="145"/>
Aber wie rufe ich diese in meine Seite UI und code hinter?
Eigentlich zu beachten, die vor der Einstellung einer Farbe in der App.xaml bietet ein debugging-Fehler beim Start?
public App()
{
//Standard XAML initialization
InitializeComponent(); //XamlParseException occurs here
...
}
EDIT**
Update für SolidColorBrush nicht arbeiten
Ich habe ein Schieberegler-Steuerelement und zwei ToggleSwitch-Steuerelemente in XAML deklariert, und ich möchten, ändern Sie die Schieberegler für den Vordergrund im XAML-Code und ändern Sie den ToggleSwitch Steuerelemente im code hinter. Weder ist die Arbeit
App.xaml
<Color x:Key="ThemeColorBlue" A="255" R="35" G="85" B="145"/>
<SolidColorBrush x:Key="ThemeBrushBlue" Color="{StaticResource ThemeColorBlue}"/>
und so beim Versuch, ändern Sie den Schieberegler Vordergrund in XAML bekomme ich keine Fehler mit
Foreground="{StaticResource ThemeBrushBlue}"
aber beim Wechsel der ToggleSwitch Vordergrund in der code-behind-ich bekomme eine Fehlermeldung, die besagt Cannot implicitly convert type 'object' to 'System.Windows.Media.Brush'
this.ToggleSwitch.SwitchForeground = Application.Current.Resources["ThemeBrushBlue"];
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das problem ist
Wiederholen Sie einfach die Farbe und es sollte funktionieren:
<SolidColorBrush x:Key="ThemeBrushBlue" Color="#FF235591"/>
weil bei der Einstellung derColor
war es ein Initialisierung Fehler auf text255
. Wie würde ich dies im code hinter obwohl? EinstellungApplication.Current.Resources["ThemeBrushBlue"]
für ToggleSwitch gibt ein type-Objekt zu Bürsten Fehler.this.ToggleSwitch.SwitchForeground = (SolidColorBrush)Application.Current.Resources["ThemeBrushBlue"]
aber es ist einfacher, es zu tun in XAMLSwitchForeground ="{StaticResource ThemeBrushBlue}"
ToggleSwitch
Vordergrund Eigenschaft insbesondere erfordert eine Umwandlung von TypBrush
, nichtSolidColorBrush
, die ist, wo ich Probleme.Würden Sie in der Regel fügen Sie die Farbe auf
Application.Resources
mit einemKey
statt einerName
:Jetzt können Sie es in XAML als
StaticResource
, z.B.:oder in code wie diesem:
Application.Current.Resources["ThemeBrushBlue"]
gibt einobject
, aberToggleSwitch.SwitchForeground
erwartet eineBrush
. Sie müssen einen expliziten cast (wie ich in meiner Antwort):ToggleSwitch.SwitchForeground = (Brush)Application.Current.Resources["ThemeBrushBlue"];