禁用按钮,但保持背景颜色

这个孩子

我有下面的按钮样式,可以正常工作:

<Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
        <Setter Property="SnapsToDevicePixels" Value="true"/>
        <Setter Property="OverridesDefaultStyle" Value="true"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border x:Name="Border"
                        CornerRadius="2" BorderThickness="1"
                        Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}">
                        <ContentPresenter Margin="2" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True"/>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
                            <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
                            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

在按钮本身定义了更多样式后,我更改了按钮背景(绿色表示活动)

<Button>
    <Button.Style>
        <Style TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding MainStatus.Restart}" Value="true">
                    <Setter Property="Background" Value="LimeGreen" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

现在,如果我禁用该按钮,则由于模板的缘故,该按钮将变为灰色。有没有一种方法可以使当前背景更加“灰色”,但保持基色。因此,如果按钮为绿色,则颜色基本上保持绿色?

罗希特·瓦茨(Rohit Vats)

除了将背景设置为灰色外,您还可以设置不透明度以使其具有禁用外观(这将保留您的背景),如下所示:

<ControlTemplate.Triggers>
    <Trigger Property="IsEnabled" Value="false">
        <!--<Setter TargetName="Border" Property="Background"
                    Value="{StaticResource DisabledBackgroundBrush}" />-->
        <Setter TargetName="Border" Property="Opacity" Value="0.4"/>
        <Setter TargetName="Border" Property="BorderBrush"
                Value="{StaticResource DisabledBorderBrush}" />
        <Setter Property="Foreground"
                Value="{StaticResource DisabledForegroundBrush}"/>
    </Trigger>
</ControlTemplate.Triggers>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

禁用按钮时如何避免颜色变化?

来自分类Dev

Emacs:在终端中禁用主题背景颜色

来自分类Dev

按钮-单击更改背景颜色

来自分类Dev

禁用按钮背景消失

来自分类Dev

更改背景颜色已禁用切换按钮

来自分类Dev

如何使用QSS为禁用的按钮设置不同的背景颜色?

来自分类Dev

WPF禁用按钮的背景

来自分类Dev

如何通过转换器设置禁用按钮上的背景颜色?

来自分类Dev

如何更改按钮的背景颜色?

来自分类Dev

如何使用AppCompat设置按钮的禁用颜色?

来自分类Dev

如何更改Bootstrap已禁用按钮的颜色?

来自分类Dev

在保持线条颜色的同时设置EditText的背景

来自分类Dev

如何更改主题中的材质按钮禁用状态背景颜色?

来自分类Dev

更改背景颜色时,保持按钮的3D效果

来自分类Dev

在CSS中禁用选择背景颜色

来自分类Dev

单击更改背景按钮的颜色

来自分类Dev

在按任何标签的地方禁用背景颜色

来自分类Dev

WPF更改禁用按钮的背景

来自分类Dev

如何更改按钮背景的颜色

来自分类Dev

背景颜色保持白色

来自分类Dev

Java背景颜色更改按钮

来自分类Dev

样式按钮背景保持圆角

来自分类Dev

改变背景颜色的按钮

来自分类Dev

禁用离子按钮 Ionic 2 上的悬停背景颜色更改

来自分类Dev

当禁用为 true 时更改背景颜色

来自分类Dev

如何禁用单行并在列表视图中更改其背景颜色,而无需按钮(或如果可能的方法)?

来自分类Dev

为不同的按钮设置背景颜色按钮

来自分类Dev

更改按钮的背景颜色 onclick

来自分类Dev

设置按钮背景和颜色