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

news/2024/10/2 8:41:11

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.ryyt.cn/news/44850.html

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

相关文章

UE5——GAS实现连招的一种方案

前言 最近因为在研究多人联机同步下的动作同步,在Google上很幸运搜到了一篇日本博主写的GAS编写连招的方案,于是就打算贴出来分享一下,顺便讲讲实现的心得: 【UE5】GamePlayAbilitySystemによるコンボ攻撃の実装とそれに利用する小ネタ 前編【GAS】 【UE5】GamePlayAbilit…

cuda程序优化-3.通信简介

GPU进行卡间通信/多机通信的算法简介硬件结构 CPU<->GPU: 通过PCIe进行通信 GPU<->GPU: NVLink, 通过Switch桥接器辅助访问其他卡的HBM 多机通信: InfiniBand with GPU Direct RDMA(简称GDRDMA), 需要专用网卡卡间通信-Ring AllReduce nvidia文档 1. 初始状态卡数:…

【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法

SSL: CERITIFICATE_VERIFY_FAILED certificate verify failed: unable to get local issuer certificate问题描述 访问App Service的高级工具KUDU站点的URL,遇见无法访问,在通过az webapp deploy发布时候,也遇见SSL错误 (SSL: CERITIFICATE_VERIFY_FAILED certificate verif…

计算机组成原理学习 Part 2

系统总线 总线 连接各个部件的信息传输线,是各个部件共享的传输介质 结构单总线 面向 CPU 的双总线 以存储器为中心的双总线 三总线 三总线的又一形式 四总线分类片内总线:芯片内部的总线 系统总线:计算机各部件之间的信息传输线\[ \begin{cases}数据总线 & 双向 \quad…

NumPy 差分、最小公倍数、最大公约数、三角函数详解

NumPy 助你处理数学问题:计算序列的差分用`np.diff()`,示例返回`[5, 10, -20]`;找最小公倍数(LCM)用`np.lcm()`,数组示例返回`18`;最大公约数(GCD)用`np.gcd.reduce()`,数组示例返回`4`;三角函数如`np.sin()`,`np.deg2rad()`用于角度弧度转换。别忘了`np.arcsin()`等反…

LVGL line组件

目录Line(线条)的概念线条组件的使用创建线条对象设置点数组确定y轴的方向(可选)设置线条风格(可选)创建风格设置风格将创建好的线段组件添加到父对象上示例代码:运行结果 Line(线条)的概念线条组件的使用 创建线条对象设置点数组 line组件的实现原理就是通过连接两个…

课堂测试企业族谱分析1-4问

第一问: 查询: 第二问: 查询公司的股东 可视化:可隐藏和展开: 第三问: 投资可视化,查询公司名称: 也可以隐藏和展开: 第四问: 一个公司的图谱用左右树图来可视化: 也可以隐藏和展开: 剩下的第五问第六问明天发

第一周:时间复杂度该怎么看?

文章小结: 1.算法时间复杂度是什么官方定义:算法在编写成可执行程序后,运行时所需要的资源,资源包括时间和内存。解读:可执行程序运行所需要时间的一个量化指标。例如O(1),常量级。 2. 常见的时间复杂度O(1) :常量级 O(n):线性 O(logn):对数 O(nlogn) O(n^2):平方 O(…