在自定义渲染器中应用样式进行控制

时间:2016-10-11 13:32:43

标签: xamarin xamarin.forms uwp windows-10-universal

我想将样式应用于控件。这是风格

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

,可以在 App.xaml (UWP项目)中找到。这是自定义渲染器:

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

这个想法基于this answer。但风格并未适用。在代码中设置背景颜色确实有效:

this.Control.BackgroundColor = new SolidColorBrush(Windows.UI.Colors.Yellow);

如何将样式应用于自定义渲染器中的控件?

1 个答案:

答案 0 :(得分:0)

我填写了错误报告。它应该在即将发布的版本之一中修复(&gt; XF 2.3.3.166-pre4)。