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

devtools/2024/9/20 4:02:57/ 标签: WPF, HandyControl

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="关闭">

其实熟悉命令的自定义基础实现方式,也能发现Excute(object paramer) 也是接受object 类型参数的。


http://www.ppmy.cn/devtools/52261.html

相关文章

ctfshow web七夕杯

web签到 执行命令没有回显&#xff0c;我们直接写文件就可以了 有字符长度限制 ls />a nl /*>a访问url/api/a下载文件 easy_calc <?phpif(check($code)){eval($result."$code".";");echo($result); }function check(&$code){$num1…

IP分片的隐患,以及TCP分片

好的&#xff0c;我们来用一个生活中的例子更详细地解释 MTU、MSS&#xff0c;以及 IP 和 TCP 分片。 MTU 和 MSS 的概念 MTU&#xff08;Maximum Transmission Unit&#xff0c;最大传输单元&#xff09;&#xff1a; 假设你搬家&#xff0c;需要用卡车搬运家具。 卡车的最…

一行代码实现鼠标横向滚动

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 在项目中我们可能会遇到当鼠标在某个区域内&#xff0c;我们希望滚动鼠标里面的内容可以横向滚动&#xff1b; 比如我们一些常见的后台状态栏&#xff1a; 那这种该怎么写&…

LearnDash+BuddyBoss:终极在线课程社区组合

您是否希望使用 WordPress 建立在线课程社区&#xff1f; 如果是这样&#xff0c;没有比LearnDash和BuddyBoss在线课程社区更好的组合了。使用这两款产品&#xff0c;您可以创建和销售在线课程、创建群组和讨论&#xff0c;并为您的学生提供整个社交网络&#xff0c;所有这些都…

PLSQL、Oracle以及客户端远程连接服务器笔记(仅供参考)

1.PLSQL参考链接&#xff1a; 全网最全最细的PLSQL下载、安装、配置、使用指南、问题解答&#xff0c;相关问题已汇总-CSDN博客文章浏览阅读2.9w次&#xff0c;点赞98次&#xff0c;收藏447次。双击之后&#xff0c;这里选择安装目录&#xff0c;你安装目录选的哪里&#xff0…

新手怎么使用GitHub?

GitHub新手使用指南&#xff0c;涵盖了从注册、创建仓库、版本控制基本操作到SSH密钥配置等关键步骤&#xff1a; 第一步&#xff1a;注册与登录 访问GitHub官方网站&#xff1a;https://github.com。点击页面右上角的"sign up"按钮开始注册账号。输入有效的电子邮…

Macbook M芯片Homebrew与git的安装与配置

Macbook M芯片Homebrew与git的安装与配置 Homebrew的安装与配置 搜索Homebrew; 找到如下网址https://brew.sh/ 把以上命令复制到终端 执行后&#xff0c;发现并不能下载&#xff1b; 如果你像我一样也是不通的&#xff0c;可以使用国内源,将如下命令复制到终端&#xff1a;…

深入探索深度学习的验证集:必要还是可选?

深入探索深度学习的验证集&#xff1a;必要还是可选&#xff1f; 在深度学习项目的设计和实施过程中&#xff0c;数据通常被划分为训练集、测试集&#xff0c;以及有时的验证集。尽管在一些研究中&#xff0c;我们可能看到只有训练集和测试集被使用&#xff0c;验证集的作用及…

第壹章第15节 C#和TS语言对比-泛型

C#提供了泛型的完整支持&#xff0c;不仅在编译时&#xff0c;运行时仍然保留泛型的类型信息&#xff0c;同时提供了更加丰富的泛型约束和更加全面的协变逆变支持。TS的泛型&#xff0c;在语法表现形式上&#xff0c;和C#差不多&#xff0c;但本质上两者是不一样的。TS的泛型&a…

2024年春季学期《算法分析与设计》练习15

问题 A: 简单递归求和 题目描述 使用递归编写一个程序求如下表达式前n项的计算结果&#xff1a; (n<100) 1 - 3 5 - 7 9 - 11 ...... 输入n&#xff0c;输出表达式的计算结果。 输入 多组输入&#xff0c;每组输入一个n&#xff0c;n<100。 输出 输出表达式的计…

selenium中,怎么判断是否已选多选框

html文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><p>测试勾选</p><div><input type"checkbox" name"b…

数据库和DDL语句

数据库和DDL语句 数据库&#xff1a;SQL:分类&#xff1a;DDL:操作库&#xff1a;操作表&#xff1a;操作字段&#xff1a; 数据库&#xff1a; ​ 数据库&#xff08;database&#xff09;就是一个存储数据的仓库。为了方便数据的存储和管理&#xff0c;它将数据按照特定的规律…

linux kernel 驱动模型中匹配顺序是怎样的

今天看驱动&#xff0c;发现有几处都可以进行匹配&#xff0c;我就在想他们的优先顺序是怎样的 这里看的是platform架构 其他的应该一样 跟踪代码发现如下代码&#xff1a; __driver_attach //./drivers/base/dd.c driver_match_device ./drivers/base/base.h drv->…

数据库基础——数字、字符串、日期时间、二进制

数据库的分类 定义&#xff1a;主要是数据表的创建、删除、修改 操纵&#xff1a;对数据进行增删添改 控制&#xff1a;对数据库的权限进行管理 数据库不区分大小写&#xff0c;一条语句的结尾以英文分号结尾 命名不能是关键字&#xff0c;只能使用英文、数字和下划线 注释可以…

COVINS-G编译注意事项

install_files.sh 修改source devel/setup.bash 为 source devel/setup.zsh cv_bridge 为了防止和本机的noetic的cv_bridge冲突&#xff0c;需要放入一个旧版本的cv_bridge。 先编译好opencv3_catkin&#xff0c;然后添加cv_bridge,也就是下载vision_opencv的melodic分支到cov…

文章MSM_metagenomics(七):分组马赛克图

欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 介绍 本教程是使用一个Python脚本来绘制马赛克图&#xff0c;用于可视化两个变量的频率分布。 数…

如何以银行客户为中心实现自动化,并创造更顺畅的客户体验?

在当今社会&#xff0c;客户已习惯于通过几次点击就能迅速得到所需&#xff0c;但银行业的客户旅程仍然因为延误、错误、隐藏费用和资金可获取性问题而显得繁琐。试问&#xff0c;您上一次向他人推荐自己的银行、保险公司或税务局提供的优质服务是何时&#xff1f; 无论是购车…

Linux内核中user、sys、iowait计算

Linux源代码路径: kernel/sched/cputime.c void account_user_time(struct task_struct *p, u64 cputime) {int index;/* Add user time to process. */p->utime += cputime;account_group_user_time(p, cputime);index = (task_nice(p) > 0) ? CPUTIME_NICE : CPUTIM…

英语学习笔记34——What are they doing?

What are they doing? 他们在做什么&#xff1f; 词汇 Vocabulary sleep v. 睡觉 ing形式&#xff1a;sleeping 例句&#xff1a;那个男孩正在睡觉。    That boy is sleeping. 相关&#xff1a;sleepy 困的 例句&#xff1a;我太困了。    I’m so sleepy. shave v.…