Ich möchte einen Stil auf ein Steuerelement anwenden. Dies ist der StilAnwenden Stil auf Steuerelement in benutzerdefinierten Renderer
<Application.Resources>
<ResourceDictionary>
<SolidColorBrush x:Key="BackgroundColor" Color="Yellow" />
<Style TargetType="Button" x:Name="myNewButtonStyle">
<Setter Property="Background" Value="{StaticResource BackgroundColor}" />
</Style>
</ResourceDictionary>
</Application.Resources>
, die in App.xaml (UWP-Projekt) zu finden sind. Und hier ist der benutzerdefinierte Renderer:
protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);
if (this.Element != null)
{
var style = Windows.UI.Xaml.Application.Current.Resources["myNewButtonStyle"] as Windows.UI.Xaml.Style;
this.Control.Style = style;
}
}
Die Idee basiert auf this answer. Aber der Stil wird nicht angewendet. die Hintergrundfarbe in Code-Einstellung funktioniert:
this.Control.BackgroundColor = new SolidColorBrush(Windows.UI.Colors.Yellow);
Wie kann ich einen Stil auf ein Steuerelement in einem benutzerdefinierten Renderer anwenden?
Setter-Eigenschaft kann "BackgroundColor" nicht nur Hintergrund sein. Probieren Sie es aus –
* Unbekanntes Mitglied 'BackgroundColor' auf Element 'Button' *. * Das Element "BackgroundColor" wird nicht erkannt oder ist nicht zugänglich. * – testing