使用 ICommand 的按钮不会被禁用?

2024-01-06

我的 wpf-mvvm 应用程序中有一个按钮控件。

我用一个ICommand属性(在 viewmodel 中定义)将按钮单击事件绑定到 viewmodel。

我有 -> 执行和canexecute我的参数ICommand执行 (RelayCommand).

Even if CanExecute为 false...按钮未禁用...当按钮内容为图像时

但是,当按钮内容是文本时……启用/禁用效果很好。

<Button DockPanel.Dock="Top" 
                        Command="{Binding Path=MoveUpCommand}">
                    <Button.Content>
                        <Image Source="/Resources/MoveUpArrow.png"></Image>
                    </Button.Content>
                    <Style>
                        <Style.Triggers>
                            <Trigger Property="IsEnabled" Value="False">
                                <Setter Property="Opacity" Value=".5" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </Button>

按钮确实被禁用,只是它不影响图像的渲染。 您必须以将图像的不透明度更改为 0.5 的样式编写一个触发器,然后您将获得禁用按钮的所需效果,如下所示:

<Style x:Key="imageButton" TargetType="Button">
        <Style.Triggers>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Opacity" Value=".5" />
            </Trigger>
        </Style.Triggers>
</Style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ICommand 的按钮不会被禁用? 的相关文章

随机推荐

  • 以编程方式从布局中删除块

    我想根据通过前端路由器控制器登录的用户从产品视图页面中删除product options wrapper块 我知道我可以以编程方式附加一个新块 但我没有找到删除函数 尝试过某事 像那样 this gt getLayout gt unsetB
  • ES6 从 root 导入

    我目前正在玩 React Native 我正在尝试构建我的应用程序 但是它开始因导入而变得混乱 app components Loading js index ios js 现在 在我的index ios js我能够简单地做 import
  • Java:匹配字符串中的短语

    我在数据库和输入字符串中有一个短语列表 短语可能由一个或多个单词组成 我需要找出哪些短语出现在输入字符串中 在Java中是否有一种有效的方法来执行这种匹配 一个快速的破解方法是 基于组合短语构建正则表达式 构造一个集合 列出迄今为止尚未匹配
  • istream 运算符重载 C++

    我正在尝试执行一个简单的 istream 运算符重载 但由于某种原因 一旦进入此函数 程序就会进入无限循环 请帮忙 my code include
  • PHP 中全局错误处理的最佳实践?

    我在 PHP 5 中使用了一个将错误转换为异常的类 并将错误记录到文件中和 或通过电子邮件将它们发送到指定帐户 有一个更好的方法吗 我知道这方面有一些东西可以做得更好 我正在使用 set error handler set error ha
  • Oracle 更新批处理模型 - 在同一应用程序中使用两种批处理模型

    Oracle JDBC 支持两种不同的更新批处理模型 标准批处理和 Oracle 特定批处理 根据 oracle 11g JDBC 开发人员指南 在任何单个应用程序中 您可以使用其中一种模型 但不是两者兼而有之 当您混合这些时 Oracle
  • 如何通过诅咒使用终端调色板

    我无法让终端调色板与诅咒一起使用 import curses def main stdscr curses use default colors for i in range 0 7 stdscr addstr Hello curses c
  • 在 IdP 身份验证之后/SP 重定向之前将文本附加到用户帐户

    在经过 IdP 验证之后 系统将其重定向到 SP 之前 我需要将电子邮件域 domain com 附加到用户的帐户 我正在使用此页面寻求帮助 但无法断言是否要逐字输入附加文本 或者引用从 LDAP 检索到的另一个属性 http simple
  • java中的类型切换

    在开始之前 我知道这个问题有很多答案 建议了替代方法 我正在寻求对这种特定方法的帮助 以确定是否可行 如果不可行 则类似的方法可能有效 我有一个方法 它接受一个超类并根据传递的对象的类型调用一个方法 例如 public void handl
  • Intellij 注释快捷方式打开 Mac 菜单栏上的帮助选项卡

    When I use the Cmd Shift keyboard shortcut to comment uncomment a block of code the Help tab on the menu bar in IntelliJ
  • 如何记录 R 参考类?

    如何记录引用类的成员函数的使用 如果我写一个Rd文件带有 usage阻塞 我该如何避免WARNING Functions methods with usage in documentation object XmlDoc but not i
  • Spring Integration,删除出站通道适配器中的文件

    我正在使用 Spring Integration 轮询目录中的文件 在服务类中处理该文件 将该文件写入输出目录 然后删除原始文件 我有以下 XML 配置
  • 在 HTML 中调用匿名函数

    我有一个关于将匿名函数提取到 HTML 的问题 这是我的 HTML 代码行 onclick functionToPull map 如果函数不是匿名的 则 functionToPull 将是函数的名称 如何提取匿名 JavaScript 函数
  • 在 Eclipse 中将现有项目转换为 Android 项目?

    如何在 Eclipse 中将现有项目转换为 Android 项目 特别是 我想将一个普通的旧 Java 项目转换为 Android 库项目 Thanks 您需要更改项目的性质 这个问题已经得到解答 但没有人给出您所需的实际字符串 关闭日食
  • Android 上关闭键盘后返回沉浸模式

    我将沉浸式模式添加到我的应用程序中 这是代码 Override public void onWindowFocusChanged boolean hasFocus super onWindowFocusChanged hasFocus if
  • csv php mysql 数据导出 - 所有数据都导出在一列中

    我需要使用下面的 php 脚本将姓名 给定电话号码 移动注释位置全部放在我的 csv 导出的单独列中 当前代码将每条记录的所有选定数据导出到一列中 谢谢你 result mysql query SELECT who as Name Give
  • Jenkins Pipeline:如何转储错误?

    当尝试打印错误时 e getMessage 或在管道脚本中转储堆栈跟踪 我收到一条错误消息 指出这是不允许的 在这种情况下如何将错误输出到日志中 try deleteJob JOB NAME catch e emailError e get
  • 显示没有索引键的数组

    print r arraydata 我得到了输出 数组 0 gt vikas 1 gt 衬衫 2 gt 布料 1 3 gt 测试 4 gt 衬衫 5 gt 布料 2 6 gt avi 我需要这样显示数组 arr array vikas 衬衫
  • Chrome Inspector 中的 Javascript 调试:变量在手表和控制台中显示为未定义,但可以在悬停时进行检查

    在 Chrome 检查器中调试 AngularJS 时 我经常遇到这样的情况 当我知道某些变量已定义时 我可以通过在 Chrome 检查器中将鼠标悬停在它们上方来检查它们 他们也出现在 当地人 选项卡中 但是 当我尝试将它们添加到监视选项卡
  • 使用 ICommand 的按钮不会被禁用?

    我的 wpf mvvm 应用程序中有一个按钮控件 我用一个ICommand属性 在 viewmodel 中定义 将按钮单击事件绑定到 viewmodel 我有 gt 执行和canexecute我的参数ICommand执行 RelayComm