wpf,工具栏上,最小化按钮的实现

news/2024/9/28 23:15:32/

工具栏上,最小化按钮的实现。工具栏做成的是用户控件。

用户控件的xaml

      <Button HorizontalAlignment="Right" Height="32"  Click="MinimizeClick" />

用户控件的cs代码

   private void MinimizeClick(object sender, RoutedEventArgs e){RaiseEvent(new RoutedEventArgs(MinimizeEvent, this));}
   public static readonly RoutedEvent MinimizeEvent = EventManager.RegisterRoutedEvent(nameof(Minimize), RoutingStrategy.Bubble,typeof(EventHandler<RoutedEventArgs>), typeof(TopBar));public event RoutedEventHandler Minimize{add => AddHandler(MinimizeEvent, value);remove => RemoveHandler(MinimizeEvent, value);}

用户控件加载到页面后的xaml

        <controls:TopBar x:Name="_topBar_" Grid.Row="0"  Close="CloseClick"Maximize="MaximizeClick"Minimize="MinimizeClick"RestoreDown="RestoreDownClick"WindowChrome.IsHitTestVisibleInChrome="True"Show="{Binding SharedViewModel.ShowTopBar,Mode=TwoWay}"MouseMove="TopBarControl_OnMouseMove"HomeButtonIsEnabled ="{Binding SharedViewModel.HomeButtonIsEnabled }"SettingButtonVisibility ="{Binding SharedViewModel.SettingButtonVisibility }"Grid.ColumnSpan="2"><be:Interaction.Triggers><be:EventTrigger EventName="Setting"><be:InvokeCommandAction Command="{Binding SettingCommand}" /></be:EventTrigger><be:EventTrigger EventName="Home"><be:InvokeCommandAction Command="{Binding HomeCommand}" /></be:EventTrigger><be:EventTrigger EventName="Login"><be:InvokeCommandAction Command="{Binding ToLoginCommand}" /></be:EventTrigger></be:Interaction.Triggers></controls:TopBar>

 .cs代码

 HomeCommand = new DelegateCommand(OnHome);public DelegateCommand HomeCommand { get; private set; }void OnHome(){}

 


http://www.ppmy.cn/news/1531205.html

相关文章

OceanBase技术解析: 执行器中的自适应技术

在《OceanBase 数据库源码解析》这本书中&#xff0c;对于执行器的探讨还不够深入&#xff0c;它更多地聚焦于执行器的并行处理机制。因此&#xff0c;通过本文与大家分享OceanBase执行器中几种典型的自适应技术&#xff0c;作为对书中执行器部分的一个补充。 提升数据库分析性…

音频转MP3格式困难?如何轻松实现wav转mp3?

格式多样化为我们带来了灵活性和创意的无限可能&#xff0c;但同时&#xff0c;不同格式间的转换也成为了不少用户面临的难题。尤其是当你手握珍贵的WAV音频文件&#xff0c;却希望它们能在更多设备上流畅播放或节省存储空间时&#xff0c;wav转mp3的需求便应运而生。WAV以其无…

【机器学习】---元强化学习

目录 1. 元学习简介1.1 什么是元学习&#xff1f;1.2 元学习的应用 2. 强化学习基础2.1 什么是强化学习&#xff1f;2.2 强化学习的基本框架2.3 深度强化学习 3. 元强化学习的概念与工作原理3.1 元强化学习是什么&#xff1f;3.2 元强化学习与普通强化学习的区别 4. 元强化学习…

【动态规划】最长回文子串

最长回文子串&#xff08;难度&#xff1a;中等&#xff09; 该题对应力扣网址 思路 题目分成三种情况 情况一&#xff1a;每一个字符都是长度为1的回文串 情况二&#xff1a;长度大于2的回文串&#xff1a;看从i到j的字符串包含的从i1到j-1的字符串是否是回文串&#xff08…

TypeScript 设计模式之【装饰模式】

文章目录 **装饰模式**&#xff1a;为你的对象穿上华丽的外衣装饰者的魔法装饰模式有什么利与害&#xff1f;如何使用装饰者来美化你的对象代码实现案例装饰模式的主要优点装饰模式的主要缺点装饰模式的适用场景总结 装饰模式&#xff1a;为你的对象穿上华丽的外衣 嘿程序员&a…

Linux网络——HTTPS详解

文章目录 HTTPS加密 常见加密方式对称加密非对称加密非对称对称数据指纹 证书CA认证数字签名非对称证书对称 中间人 HTTPS 这也是一个应用层协议&#xff0c;是在HTTP协议的基础上引入了一个加密层 为什么要加密呢&#xff0c;这主要是因为如果不对传输主体加密&#xff0c;当…

webstorm新建一个新vue项目用命令解决

在WebStorm中直接通过命令新建一个Vue项目&#xff0c;通常意味着你需要先确保你的电脑上安装了Node.js和npm&#xff08;或yarn&#xff09;&#xff0c;然后全局安装Vue CLI。Vue CLI是一个基于Vue.js进行快速开发的完整系统&#xff0c;提供了从零开始搭建Vue项目所需的所有…

Linux驱动开发(速记版)--并发与竞争

第十八章 并发与竞争 18.1 并发与竞争 18.1.1 并发 早期计算机 CPU单核心时&#xff0c;由于 CPU执行速度快于I/O操作&#xff0c;常因等待 I/O而空闲。 为提高 CPU利用率&#xff0c;引入了并发执行理论。并发通过算法在CPU执行I/O等待时切换至其他任务&#xff0c;使多个任…