HandyControl 使用内置Command 执行无效问题

news2024/11/26 20:43:48

blog-hbh-hc-header
HandyControl 中通过查阅代码HandyControl_Shared 共享项目中,Interactivity/Commands 目录下,存在着一些内置 Command,开心发现还有关闭窗体,最小化等系统级别常用命令。

CloseWindowCommand.cs
ControlCommands.cs
OpenLinkCommand.cs
PushMainWindow2TopCommand.cs
ScreenshotCommand.cs
ShutdownAppCommand.cs
StartScreenshotCommand.cs

其中主要是在ControlCommands.cs 中。由于是静态属性,所以可以直接在xaml中使用,已关闭窗体为例。

/// <summary>
///     控件库使用的所有命令(为了统一,不使用wpf自带的命令)
/// </summary>
public static class ControlCommands
{
	/// <summary>
    ///     关闭窗口
    /// </summary>
    public static CloseWindowCommand CloseWindow { get; } = new();
}

CloseWindowCommand 代码实现如下:

public class CloseWindowCommand : ICommand
{
    public bool CanExecute(object parameter) => true;

    public void Execute(object parameter)
    {
        if (parameter is DependencyObject dependencyObject)
        {
            if (Window.GetWindow(dependencyObject) is { } window)
            {
                window.Close();
            }
        }
    }

    public event EventHandler CanExecuteChanged;
}

页面按钮使用:

<Button Style="{StaticResource CloseButtonIcon}" 
        Command="{x:Static hc:ControlCommands.CloseWindow}" 
        Padding="10,0" hc:IconElement.Geometry="{StaticResource CloseGeometry}"
            ToolTip="关闭">

运行项目之后,点击按钮并没有触发对应的命令。通过查阅Github 中的issue可以查到如下信息:https://github.com/HandyOrg/HandyControl/issues/687
解决办法是添加对应的命令参数CommandParameter

<Button Style="{StaticResource CloseButtonIcon}" 
        Command="{x:Static hc:ControlCommands.CloseWindow}" 
        CommandParameter="{Binding RelativeSource={RelativeSource Self}}" 
        Padding="10,0" hc:IconElement.Geometry="{StaticResource CloseGeometry}"
            ToolTip="关闭">

实际并不是执行无效,只是函数Execute(object parameter)代码中存在类型判定,未指定参数情况时,代码内部并不会执行目标逻辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1833528.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口自动化测试实战:测试用例也能自动生成

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 作为测试&#xff0c;你可能会对以下场景感到似曾相识&#xff1a;开发改好的 BUG 反复横跳&…

2024年6月17日 (周一) 叶子游戏新闻

期刊杂志: 聚合读者、意林、知音、故事会、花火以及国内各大知名报纸电子版&#xff0c;无需付费即可观看各种免费资源 中医自学宝典: 集合了中医医案&#xff0c;医经&#xff0c;方剂 药材知识的app&#xff0c;更方便的免费学习中医知识 《最终幻想7》重制三部曲总监鸟山求&…

AI导航网

文章目录 1、[AI导航网](https://www.ainav.cn/) 1、AI导航网 https://www.ainav.cn/

云顶森林的新守护者:大数据平台的智慧力量

在遥远的云顶之上&#xff0c;有一片生机盎然的森林&#xff0c;它不仅是动植物的家园&#xff0c;更是自然与人类和谐共生的典范。然而&#xff0c;如何在这片广袤的森林中实施高效、科学的管理&#xff0c;一直是一个摆在管理者面前的难题。幸运的是&#xff0c;随着科技的飞…

linux 安装 Nginx 并部署 vue 项目

1、安装 yum install nginx2、使用 nginx 命令 查看nginx状态 systemctl status nginx 启动服务 systemctl start nginx停止服务 systemctl stop nginx重启服务 systemctl restart nginx修改配置后重载 systemctl reload nginx 加入开机自启动 systemctl enable ngin…

Qt中利用QTextBrowser控件设计日志窗口

我们一般使用Qt开发应用程序时&#xff0c;都有将控制台窗口去掉。但是&#xff0c;有时候又需要查看一些调试信息&#xff0c;一般的处理方式是把log写到一个文件中。本文介绍以下日志窗口&#xff0c;可以更方便的查看日志信息。 UI设计 推拽UI控件&#xff0c;修改默认背景…

数字孪生定义及应用介绍

数字孪生定义及应用介绍 1 数字孪生&#xff08;Digital Twin, DT&#xff09;概述1.1 定义1.2 功能1.3 使用场景1.4 数字孪生三步走1.4.1 数字模型1.4.2 数字影子1.4.3 数字孪生 数字孪生地球平台Earth-2 参考 1 数字孪生&#xff08;Digital Twin, DT&#xff09;概述 数字孪…

Linux系统OpenSSH_9.7p1升级详细步骤

版本说明 当前内核版本如下 当前操作系统版本如下 当前OpenSSH版本和OpenSSL版本如下 升级说明 openssh依赖于openssl和zlib&#xff0c;而openssl依赖于zlib&#xff0c;所以我们要先安装zlib&#xff0c;然后是openssl&#xff0c;最后是openssh。zlib-1.3.1下载地址&#…

新版嘎嘎快充互联互通系统配置文档

宝塔环境配置 登录宝塔账号&#xff0c;安装nginx、mysql5.7、php7.2、supervisor、redisphp安装扩展&#xff1a; 1&#xff09;安装swooleloader72 将嘎嘎官方提供的swoole_loader_72_nts.so文件上传到 /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718…

阿里巴巴全球数学竞赛报名条件

#竞赛概览与历史# “阿里巴巴全球数学竞赛”&#xff08;Alibaba Global Mathematics Competition&#xff09;由阿里巴巴公益、阿里巴巴达摩院共同举办&#xff0c;面向全球的数学爱好者&#xff0c;集竞赛、培训、交流于一体&#xff0c;旨在全球范围内引领开启关注数学、理解…

Debian/Ubuntu linux安装软件

1、官方软件商店安装 2、deb包安装 报错不是sudoers&#xff0c;首先将用户添加到sudo su -l adduser USERNAME sudo exit然后&#xff0c;退出桌面环境并再次登录。 您可以通过输入以下内容来检查上述过程是否成功&#xff1a; groups下载deb包 altshiftf4或右键打开命令行…

【交易策略】#22-24 残差资金流强度因子

【交易策略】#22-24 残差资金流强度因子

Web前端项目-拼图游戏【附源码】

拼图游戏 拼图游戏是一种经典的益智游戏&#xff0c;通过HTML、CSS和JavaScript等前端技术的综合运用来实现&#xff1b;拼图游戏可以锻炼玩家的观察能力、空间认知能力和逻辑思维能力。游戏开始时&#xff0c;一张图片会被切割成多个小块&#xff0c;并以随机顺序排列在游戏区…

脑白金咖啡首辆快闪咖啡车亮相上海,瞄准年轻健康饮品市场

近日&#xff0c;巨人集团旗下脑白金快闪咖啡车现身上海外滩BFC中心&#xff0c;这是继脑白金咖啡在上海地标建筑武康大楼开设快闪店以来&#xff0c;首次以咖啡车形式亮相大众视野。 据「TMT星球」了解&#xff0c;此次快闪活动为期一个月&#xff0c;与合作伙伴共同打造潮流…

Mac 开发vscode常用命令

1 打开vscode settting配置 commandshiftp 输入&#xff1a;Open User Setting 2

如何优雅的了解OpenHarmony-v4.1-Release的init启动流程

一、启动概述 在产品代码成功编译通过后&#xff0c;开始进行下一步的运行调测阶段&#xff0c;而运行调测第一步便需要了解系统的启动过程。对于 OpenHarmony 来说&#xff0c;系统启动流程如下&#xff1a; ---> uboot启动---> uboot启动内核---> 内核挂载根文件系…

深入理解@EnableAspectJAutoProxy的力量

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

怎么用AI绘画完成设计创作?

AI绘画工具为设计师提供了强大的功能和便利性&#xff0c;用AI绘画进行艺术创作能够使设计师能够更快地迭代和优化设计方案&#xff0c;提高设计效率。那么怎么用AI绘画完成设计创作? 要使用AI绘画完成设计创作&#xff0c;首先需要选择一个合适的工具。目前市场上有很多优秀的…

大话设计模式解读03-装饰模式

本篇文章&#xff0c;来解读《大话设计模式》的第6章——装饰模式。并通过C代码实现实例代码的功能。 注&#xff1a;第3~6章讲的是设计模式中的一些原则&#xff08;第3章&#xff1a;单一职责原则&#xff1b;第4章&#xff1a;开放-封闭原则&#xff1b;第5章&#xff1a;依…

吴恩达2022机器学习专项课程C2W3:2.26 机器学习发展历程

目录 开发机器学习系统的过程开发机器学习案例1.问题描述2.创建监督学习算法3.解决问题4.小结 误差分析1.概述2.误差分析解决之前的问题3.小结 增加数据1.简述2.增加数据案例一3.增加数据案例二4.添加数据的技巧5.空白创建数据6.小结 迁移学习1.简述2.为什么迁移学习有作用3.小…