当前位置: 首页 > news >正文

WPF 新手指引弹窗

新手指引弹窗介绍

        我们在第一次使用某个软件时,通常会有一个“新手指引”教学引导。WPF实现“新手指引”非常方便,且非常有趣。接下来我们就开始制作一个简单的”新手指引”(代码简单易懂,便于移植),引用到我们的项目中又可添加一些光彩。

代码实现

新建“新手指引”窗体
<Window x:Class="BeginerGuideDemo.GuideWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:BeginerGuideDemo"mc:Ignorable="d"    WindowStyle="None" AllowsTransparency="True" Background="{x:Null}" Title="新手指引" Height="900" Width="1440"  Loaded="Window_Loaded"><Window.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary><!-- 无表头TabControl样式 --><Style x:Key="noTitleTabControlStyle" TargetType="{x:Type TabControl}"><Setter Property="ItemContainerStyle"><Setter.Value><Style TargetType="{x:Type TabItem}"><Setter Property="Visibility" Value="Collapsed" /></Style></Setter.Value></Setter><Setter Property="BorderThickness" Value="0"></Setter></Style></ResourceDictionary></ResourceDictionary.MergedDictionaries></ResourceDictionary></Window.Resources><Grid><Border x:Name="backBorder" Background="#000000" Opacity="0.5" CornerRadius="6" Margin="10"/><TabControl Name="tabControl" SelectionChanged="tabControl_SelectionChanged"  Style="{StaticResource noTitleTabControlStyle}" Background="Transparent" Margin="0"><TabItem><Border x:Name="bdWelcome" Width="400" Height="274"  CornerRadius="6" ><Grid><Grid.RowDefinitions><RowDefinition Height="80"/><RowDefinition Height="*"/><RowDefinition Height="80"/></Grid.RowDefinitions><Image Grid.RowSpan="3"  Source="pack://application:,,,/Images/bg_guide_L.png"/><TextBlock  Text="跳过指引"  HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,15,5" FontSize="12" Cursor="Hand"MouseLeftButtonDown="SkipGuide_MouseLeftButtonDown" /><TextBlock Grid.Row="1" FontSize="18" Text="欢迎使用宇宙教学系统" VerticalAlignment="Top" HorizontalAlignment="Center"/><RichTextBox  Grid.Row="1" HorizontalAlignment="Center"  VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0"   Background="Transparent"><FlowDocument TextAlignment="Center" ><Paragraph ><Run   FontSize="16" Text="让我们一起探究新的世界吧~"></Run></Paragraph></FlowDocument></RichTextBox><Button Grid.Row="2" Width="128" Height="40"  Content="点击继续" VerticalAlignment="Center" HorizontalAlignment="Center"Click="btnNext_Click" /></Grid></Border></TabItem><TabItem><Border x:Name="bdChangeBook" Width="400" Height="215" Margin="332,46,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" CornerRadius="6" ><Grid><Grid.RowDefinitions><RowDefinition Height="80"/><RowDefinition Height="*"/><RowDefinition Height="80"/></Grid.RowDefinitions><Image Grid.RowSpan="3"  Source="pack://application:,,,/Images/bg_guide_L.png"/><TextBlock  Text="跳过指引"  HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,60,5" FontSize="12" Cursor="Hand" MouseLeftButtonDown="SkipGuide_MouseLeftButtonDown" /><RichTextBox  Grid.Row="1"  HorizontalAlignment="Center"  VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="0"   Background="Transparent"><FlowDocument TextAlignment="Center" ><Paragraph ><Run   FontSize="16" Text="点击"></Run><Run   FontSize="16" Text="更换教材"></Run><Run   FontSize="16" Text=",可切换学段学科"></Run></Paragraph></FlowDocument></RichTextBox><Button Grid.Row="2" Width="128" Height="40"  Content="退出" VerticalAlignment="Center" HorizontalAlignment="Center"Click="EndGuid_Click" /></Grid></Border></TabItem></TabControl></Grid>
</Window>
主窗体使用“新手指引”弹窗
        public MainWindow(){InitializeComponent();}private void Window_Loaded(object sender, RoutedEventArgs e){new GuideWindow(txtbStudy).ShowDialog();}

实例链接:https://download.csdn.net/download/lvxingzhe3/88683465

相关文章:

WPF 新手指引弹窗

新手指引弹窗介绍 我们在第一次使用某个软件时&#xff0c;通常会有一个“新手指引”教学引导。WPF实现“新手指引”非常方便&#xff0c;且非常有趣。接下来我们就开始制作一个简单的”新手指引”(代码简单易懂&#xff0c;便于移植)&#xff0c;引用到我们的项目中又可添加一…...

py注册登录界面

代码分析 引入tkinter库&#xff0c;并从中导入messagebox模块。 read_users()函数用于读取存储用户信息的文本文件"users.txt"。它打开文件并逐行读取&#xff0c;将每行的用户名和密码以空格分隔后存储在一个列表中&#xff0c;最后返回该列表。 login(username,…...

基于电商场景的高并发RocketMQ实战-Consumer端队列负载均衡分配机制、并发消费以及消费进度提交

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 【11来了】文章导读地址&#xff1a;点击查看文章导读&#xff01; &#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f3…...

【Java开发岗面试】八股文—数据库MySQLRedis

声明&#xff1a; 背景&#xff1a;本人为24届双非硕校招生&#xff0c;已经完整经历了一次秋招&#xff0c;拿到了三个offer。本专题旨在分享自己的一些Java开发岗面试经验&#xff08;主要是校招&#xff09;&#xff0c;包括我自己总结的八股文、算法、项目介绍、HR面和面试…...

IntelliJ IDEA [设置] 隐藏 .idea 等 .XXX 文件夹

文章目录 1. 问题描述2. 解决办法3. 最后效果4. 特殊处理&#xff08;正常不需要此步骤&#xff09;总结 我们使用 IntelliJ IDEA 导入项目的时候&#xff0c;经常会看到一些 .XXX 的文件夹&#xff08;例如&#xff1a;.idea&#xff0c;.mvn&#xff0c;.gradle 等&#xff0…...

每日一题——LeetCode961

方法一 排序法&#xff1a; 2*n长度的数组里面有一个元素重复了n次&#xff0c;那么将数组排序&#xff0c;求出排序后数组的中间值&#xff08;因为长度是偶数&#xff0c;没有刚好的中间值&#xff0c;默认求的中间值是偏左边的那个&#xff09;那么共有三种情况&#xff1a;…...

基于Unity Editor开发一个技能编辑器可能涉及到的内容

基于Unity Editor开发一个技能编辑器&#xff0c;涉及到的方面较多&#xff0c;涵盖了Unity自身的GUI框架、序列化系统、自定义编辑器、脚本调用与数据存储等。下面是几个关键点和你可能会用到的类以及API&#xff1a; 自定义Inspector&#xff1a; 使用Editor类来重写组件的I…...

Ubuntu 22.04 安装ftp实现与windows文件互传

Ubuntu 22.04 安装ftp实现与windows文件互传 1、配置安装 安装&#xff1a; sudo apt install vsftpd -y使能开机自启&#xff1a; sudo systemctl enable vsftpd 启动&#xff1a; sudo systemctl start vsftpd创建ftp工作目录&#xff1a; sudo mkdir -p /home/ftp/uftp…...

EasyPoi使用案例

EasyPoi使用案例 easypoi旨在简化Excel和Word的操作。基于注解的导入导出&#xff0c;修改注解就可以修改Excel&#xff1b;支持常用的样式自定义&#xff1b;基于map可以灵活定义表头字段&#xff1b;支持一对多的导入导出&#xff1b;支持模板的导出&#xff1b;支持HTML/Exc…...

分布式系统架构设计之分布式数据存储的分类和组合策略

在现下科技发展迅猛的背景下&#xff0c;分布式系统已经成为许多大规模应用和服务的基础架构。分布式架构的设计不仅仅是一项技术挑战&#xff0c;更是对数据存储、管理和处理能力的严峻考验。随着云原生、大数据、人工智能等技术的崛起&#xff0c;分布式系统对于数据的高效存…...

javaEE -18(11000字 JavaScript入门 - 3)

一&#xff1a;事件 &#xff08;高级&#xff09; 1.1 注册事件&#xff08;绑定事件&#xff09; 给元素添加事件&#xff0c;称为注册事件或者绑定事件&#xff0c;注册事件有两种方式&#xff1a;传统方式和方法监听注册方式 传统注册方式 &#xff1a; 利用 on 开头的…...

LangChain.js 实战系列:入门介绍

&#x1f4dd; LangChain.js 是一个快速开发大模型应用的框架&#xff0c;它提供了一系列强大的功能和工具&#xff0c;使得开发者能够更加高效地构建复杂的应用程序。LangChain.js 实战系列文章将介绍在实际项目中使用 LangChain.js 时的一些方法和技巧。 LangChain.js 是一个…...

pyCharm 打印控制台中文乱码解决办法

解决方法 在 "File" -> "Settings" 中的控制台设置&#xff1a; 在 "File" -> "Settings" 中&#xff0c;你可以找到 "Editor" -> "General" -> "Console"。在这里&#xff0c;你可能会找到…...

计算机基础--Linux详解

一概述 Linux是一种自由和开放源码的类UNIX操作系统。它是由林纳斯托瓦兹于1991年首次发布的&#xff0c;并从那时起在全球范围内得到了广泛的应用和开发。Linux具有强大的可定制性&#xff0c;可以运行在各种硬件平台上&#xff0c;包括x86、ARM、MIPS等。它不仅广泛应用于服…...

基于OpenAI的Whisper构建的高效语音识别模型:faster-whisper

1 faster-whisper介绍 faster-whisper是基于OpenAI的Whisper模型的高效实现&#xff0c;它利用CTranslate2&#xff0c;一个专为Transformer模型设计的快速推理引擎。这种实现不仅提高了语音识别的速度&#xff0c;还优化了内存使用效率。faster-whisper的核心优势在于其能够在…...

cfa一级考生复习经验分享系列(十六)

写在前面&#xff1a;并不鼓励大家在考前一个月才开始复习&#xff0c;不过&#xff0c;既然已经逼到了绝境&#xff0c;灰心丧气也没有用&#xff0c;不如放手一搏&#xff01; 首先说一下我的背景&#xff0c;工作金融机构的it&#xff0c;和cfa基本没关系&#xff0c;本硕计…...

数模学习day05-插值算法

插值算法有什么作用呢&#xff1f; 答&#xff1a;数模比赛中&#xff0c;常常需要根据已知的函数点进行数据、模型的处理和分析&#xff0c;而有时候现有的数据是极少的&#xff0c;不足以支撑分析的进行&#xff0c;这时就需要使用一些数学的方法&#xff0c;“模拟产生”一些…...

hive中struct相关函数总结

目录 hive官方函数解释示例实战 hive官方函数解释 hive官网函数大全地址&#xff1a;添加链接描述 Return TypeNameDescriptionstructstruct(val1, val2, val3, …)Creates a struct with the given field values. Struct field names will be col1, col2, …structnamed_str…...

macos下转换.dmg文件为 .iso .cdr文件的简单方法

为了让镜像文件在mac 和windows平台通用, 所以需要将.dmg格式的镜像文件转换为.iso文件, 转换方法也非常简单, 一行命令即可 hdiutil convert /path/to/example.dmg -format UDTO -o /path/to/example.iso 转换完成后的文件名称默认是 example.iso.cdr 这里直接将.cdr后缀删…...

ALSA学习(5)——设备中的alsa

参考博客&#xff1a; https://blog.csdn.net/DroidPhone/article/details/7165482 &#xff08;一下内容基本是原博主的博客转载&#xff09; 文章目录 一、ASOC的由来二、硬件架构三、软件架构四、数据结构五、内核对ASoC的改进 一、ASOC的由来 ASoC–ALSA System on Chip …...

UnityWebRequest遇到SSL证书错误别慌!手把手教你用CertificateHandler绕过验证(附完整C#代码)

Unity开发中SSL证书验证问题的应急处理与深度解析当你在Unity项目中使用UnityWebRequest进行HTTPS通信时&#xff0c;突然遇到"Curl error 60"或"SSL CA certificate error"这类证书验证错误&#xff0c;确实会让人措手不及。特别是在开发关键阶段&#xf…...

Windows任务栏透明化终极指南:5分钟掌握TranslucentTB完整设置技巧

Windows任务栏透明化终极指南&#xff1a;5分钟掌握TranslucentTB完整设置技巧 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 您是否厌倦…...

成都温江租房|中新公园大道自住实测参考

成都温江租房&#xff5c;中新公园大道自住实测参考打算在温江凤凰大街周边租房的朋友&#xff0c;可以看看中新公园大道这个小区&#xff0c;综合日常居住体验来说整体性价比不错&#xff0c;整理了真实居住优缺点&#xff0c;给大家租房做个参考。区位交通小区坐落于光华大道…...

LinkSwift:九大网盘直链下载助手终极指南,告别限速烦恼

LinkSwift&#xff1a;九大网盘直链下载助手终极指南&#xff0c;告别限速烦恼 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动…...

跟着 MDN 学CSS day_16:(深入掌握背景与边框的艺术)

在网页设计的视觉语言中&#xff0c;背景与边框是两个最基础也最强大的工具。它们就像舞台的幕布和画框&#xff0c;共同构建了元素的视觉边界与氛围。MDN的技能测试为我们提供了一个绝佳的实践机会&#xff0c;通过两个具体任务&#xff0c;将理论知识转化为实战能力。本文将深…...

描述它,不要画它:通过 MCP 和 ES|QL 实现 AI-native Kibana dashboards

作者&#xff1a;来自 Elastic Stratoula Kalafateli 从 prompt 到 dashboard。学习如何使用自然语言构建 Kibana dashboards&#xff0c;使用 example-mcp-dashbuilder&#xff1a;一个开源 MCP 应用&#xff0c;它可以编写 ES|QL 查询&#xff0c;创建交互式图表&#xff0c;…...

如何快速搭建个人小说图书馆:番茄小说下载器完整实战指南

如何快速搭建个人小说图书馆&#xff1a;番茄小说下载器完整实战指南 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 你是否曾经遇到过这样的问题&#xff1a;想离线阅读喜欢的…...

零代码也能做游戏?用Construct3半小时复刻经典《打砖块》

零代码也能做游戏&#xff1f;用Construct3半小时复刻经典《打砖块》当第一次听说"零代码游戏开发"时&#xff0c;大多数人的反应都是将信将疑。毕竟&#xff0c;游戏开发在传统认知中是需要掌握复杂编程语言的硬核技能。但今天&#xff0c;我要带你用Construct3这款…...

保姆级教程:用UE5 Niagara系统10分钟搞定一个逼真的烟雾特效(附材质与帧动画设置)

10分钟用UE5 Niagara打造电影级烟雾特效&#xff1a;从零到实战的极简指南在游戏开发与影视动画领域&#xff0c;烟雾特效一直是营造沉浸感的关键元素。传统粒子系统需要复杂参数调节&#xff0c;而UE5的Niagara系统通过模块化设计&#xff0c;让初学者也能快速实现专业级效果。…...

告别误报!用SCTransNet+Transformer搞定红外小目标检测(附PyTorch实战代码)

突破红外小目标检测瓶颈&#xff1a;SCTransNet与Transformer的实战融合在安防监控、遥感测绘和军事预警等关键领域&#xff0c;红外小目标检测技术正面临前所未有的挑战。当目标尺寸小于1010像素、信噪比低于2dB时&#xff0c;传统算法在复杂背景下的误报率往往高达30%以上。这…...