首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin开关控制的主题

Xamarin开关控制的主题
EN

Stack Overflow用户
提问于 2021-11-25 12:56:30
回答 1查看 93关注 0票数 1

我想做的只是在单击按钮时使用c#更改按钮的主题。

我在xaml中拥有的是:

代码语言:javascript
复制
BackgroundColor="{x:AppThemeBinding Light={StaticResource Body_Default_Background}, Dark={StaticResource Body_Default_Background_Dark}}"

我想使用c#设置应用程序主题绑定

我试过:

代码语言:javascript
复制
button.BackgroundColor = "{x:AppThemeBinding Light={StaticResource Body_Default_Background}, Dark={StaticResource Body_Default_Background_Dark}}"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-26 03:21:09

单击按钮时更改按钮的主题

您可以简单地使用VisualStateManagerEventTrigger更改按钮的EventTrigger

您可以参考以下代码:

代码语言:javascript
复制
<Button Text="Click Me!">
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="CommonStates">
            <VisualState x:Name="Normal">
                <VisualState.Setters>
                    <Setter Property="BackgroundColor" Value="Green" />
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="Pressed">
                <VisualState.Setters>
                    <Setter Property="BackgroundColor" Value="Red" />
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
</Button>

或者使用EventTrigger来实现这一点:

创建ButtonTriggerAction.cs

代码语言:javascript
复制
public class ButtonTriggerAction : TriggerAction<VisualElement>
{
    public Color BackgroundColor { get; set; }

    protected override void Invoke(VisualElement visual)
    {
        var button = visual as Button;
        if (button == null) return;
        if (BackgroundColor != null) button.BackgroundColor = BackgroundColor;
    }
}

和用法:

代码语言:javascript
复制
<Button Text="using EventTrigger">
    <Button.Triggers>
        <EventTrigger Event="Pressed">
            <local:ButtonTriggerAction BackgroundColor="Red" />
        </EventTrigger>
        <EventTrigger Event="Released">
            <local:ButtonTriggerAction BackgroundColor="Default" />
        </EventTrigger>
    </Button.Triggers>
</Button>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70111517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档