- 博客(36)
- 资源 (4)
- 收藏
- 关注
原创 WPF两点之间绘制丝滑的贝塞尔曲线
绘制贝塞尔曲线的代码如下:(geo数据给到Path的Data即可绘制)在做这种节点连线的控件时,需要绘制流畅的曲线。
2024-03-12 11:13:03 887 1
原创 WPF ToggleButton 主题切换动画按钮
WPF ToggleButton 主题切换动画按钮,仿造最近看到的html中的一个效果,大致思路是文章这样,感觉还可以再雕琢一下。
2023-11-10 16:35:16 2037
原创 WPF 搜索框控件样式
完全通过Xaml代码实现,使用了UserControl进行封装。功能包括聚焦时控件展开,输入为空时的文字提示,以及待选提示项列表等效果。实现效果如下图:xaml代码后台代码:控件使用显示示例:
2023-07-19 14:28:43 939
原创 C# WPF实现动画渐入暗黑明亮主题切换效果
效果图如下最近在Bilibili的桌面端看到一个黑白主题切换的效果感觉,挺有意思。于是我使用WPF尝试实现该效果。主要的切换效果,基本实现不过还存在一些小瑕疵,比如字体等笔刷不能跟随动画进入进行切换。因为Bilibili的客户端是用electron写的,前端使用的html,css确实太强了,这咱只能佩服。
2023-07-14 16:42:25 2096
原创 C# .NET调用OpenAI及微软语音服务实现语音输入及输出
都有开源库,所以实现起来就比较简单了,主要难度可能还是注册账号,有能力的可以自己试试,在这儿贴出部分调用的主要代码,项目已开源,Github搜索JamesBaiJun/OpenAI-Azure,记得点个Star。软件截图如下,需要你填入。
2023-06-13 17:54:13 1355 3
原创 使用微软提供的工具获取权限删除不能直接删除的注册表(删除U盘等移动设备记录)
在计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR中保存了电脑连接过的移动设备信息,但是直接右键无法删除项目。在网上搜索资料后发现微软有发布工具可以进行删除操作,但是需要输入命令,于是,我使用C#进行简单的封装。该代码执行后,使用psexec.exe打开注册表并可以删除无法删除的项目。
2022-08-24 11:02:27 2085 1
原创 WPF简易局部地图 实现标记 绘制轨迹
WPF简易局部地图 实现标记 绘制轨迹控件可以实现:在知道显示的地图区域时:设定地图的左上角和右下角经纬度;设置使用的地图图片路径;添加地图图钉或者轨迹点;绘制点或轨迹。地图控件所需的数据结构:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using Syst
2022-05-17 10:54:04 1486
原创 WPF 原创旋钮 KnobButton (自定义控件)
WPF 原创旋钮 KnobButtonC#代码:public class KnobButton : Slider, IExecutable { static KnobButton() { DefaultStyleKeyProperty.OverrideMetadata(typeof(KnobButton), new FrameworkPropertyMetadata(typeof(KnobButton))); } .
2022-04-11 15:33:23 1069
原创 WPF 自定义控件 动画仪表盘控件 Gauge
WPF 自制动画 仪表盘控件 GaugeXaml代码:<Style TargetType="{x:Type ctrl:ArcGauge}"> <Setter Property="Background" Value="#646464"/> <Setter Property="Foreground" Value="Black"/> <Setter Property="Template">
2022-04-07 10:50:22 2526 8
原创 WPF 组态软件实现思路(WPF控件可视化布局)
WPF 组态软件实现思路(WPF控件可视化布局)一、实现控件选中及自由拖动二、实现控件对齐功能三、实现对齐辅助线功能四、实现框选功能来张图图标使用了nuget库MahApps.Metro.IconPacks.Modern实现拖动的方式有很多,本文使用了装饰器(Adorner)。使用装饰器的好处在与可以实现控件的选中效果显示。布局容器使用了Canvas,比较方便实现控件的绝对定位。继承自Canvas并添加SelectedItems属性Xaml代码:主窗体代码: <Grid&g
2022-02-23 16:52:53 6420 5
原创 SuperSocket 接收发送数据的简单应用
SuperSocket 接收发送数据的简单应用SuperSocket 官方文档通过Nuget安装SuperSocket包创建简单的测试界面<Window x:Class="Theme.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns
2021-07-29 14:53:06 743
原创 WPF 文本块部分高亮突出显示
WPF 文本块部分高亮突出显示实现思路利用TextBlock可以使用Run来组成Text内容的特性实现。 public class HighlightTextblock : TextBlock { public string DefaultText { get; set; } public string HiText { get { return (string)GetValue(HiTextProperty);
2021-07-28 16:09:12 1611
原创 WPF 创建单例程序
WPF 创建单例程序App.xaml.cs:public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { // Get Reference to the current Process Process thisProc = Process.GetCurrentProcess();
2021-07-28 15:14:07 194
原创 WPF 常用代码片段CodeSnippet
CodeSnippet路由事件<?xml version="1.0" encoding="utf-8" ?><CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <Header> <Title>路由事件代码段</Title> <Author>衆尋</Author&g
2021-07-28 15:11:46 407
原创 WPF 程序启动异步线程显示加载动画
WPF 程序启动异步线程显示加载动画思路WPF UI界面必须在STA线程中才能进行创建,因此加载动画所在的线程要创建为STA线程;在程序主界面加载完成后需要将其带到最上层显示,需要调用Win32 api来实现;加载界面关闭也需要在其所在的线程关闭,因为需要调用其Dispatcher来关闭。App.xaml.cs代码如下 public partial class App : Application { SplashWindow splash = null;
2021-07-28 15:04:16 2329
原创 Devexpress WPF GridControl在行指示器Indicator显示行号
Devexpress WPF GridControl在行指示器Indicator显示行号加粗样式直接上代码<dxg:GridControl AutoGenerateColumns="AddNew" ItemsSource="{Binding Items}"> <dxg:GridControl.View> <dxg:TableView AutoWidth="True" I
2021-07-28 14:43:05 743
原创 WPF ToolTip显示数据验证提示
WPF ToolTip显示数据验证提示先创建一个验证条件类继承自ValidationRule,并实现INotifyPropertyChanged进行通知提醒界面public class ValiRange : ValidationRule, INotifyPropertyChanged { public string errorMessage; public string ErrorMessage { get => errorMessage; set {
2021-07-28 14:31:48 490
原创 WPF XAML中表示运算符
WPF XAML中表示运算符引用System名称空间,以输入string类型的直接内容引用集合的名称控件,以使用ArrayList来在XAML中创建集合<genric:ArrayList x:Key="HiString"> <system:String>+</system:String> <system:String>-</system:String> <sys
2021-07-28 14:17:04 666
原创 C# 调用JavaScript脚本并进行对象交互(ReoScript)
C# 调用JavaScript脚本并进行交互首先在Github下载ReoScript源码,并进行编译,引用相关的dllReoScript class Program { static ScriptRunningMachine srm = new ScriptRunningMachine(); static void Main(string[] args) { srm.WorkMode |= MachineWorkMod
2021-07-28 14:05:13 616
原创 WPF自定义可双击进行编辑的文本块
WPF自定义可双击进行编辑的文本块思路如下代码实现XAML代码C#代码效果图思路如下模板中同时存在只显示文本的Textblock和编辑的TextBox;控件有显示和编辑两种状态,默认为显示状态,双击进入编辑状态;点击时记录状态,第二次点击时显示TextBox以实现进行编辑功能;代码实现XAML代码先创建一个自定义控件,Template定义如下<Style TargetType="{x:Type local:TextEditable}"> <Sette
2021-07-28 13:57:10 2687 3
原创 用WPF做一个动画数字指示控件
用WPF做一个动画数字指示控件绘制界面数字块和指示块:<UserControl.Resources> <FontFamily x:Key="Digital"> pack://application:,,,/#DS-Digital </FontFamily> <Style TargetType="TextBlock"> <Setter Pr
2020-09-27 14:35:14 658
原创 C# 全局或程序内捕获键盘及鼠标操作 MouseKeyboardActivityMonitor库
1. nuget安装包,搜索MouseKeyboardActivityMonitor2. 引用using MouseKeyboardActivityMonitor;using MouseKeyboardActivityMonitor.WinApi;3. 声明监听对象并实例化,并注册监听事件 private KeyboardHookListener hookListener; GlobalHooker hooker = new GlobalHooker();//全局钩子,可以定义app内的hoo
2020-08-12 16:51:31 1381
原创 LiteNetLib UDP库使用
LiteNetLib UDP库使用服务器端代码public static NetManager server; private async void IniServer(int port) { EventBasedNetListener listener = new EventBasedNetListener(); server = new NetManager(listener); var re =
2020-06-03 09:31:55 1362
原创 C# Devexpress Mapcontrol地图离线加载本地切片地图数据
C# Devexpress Mapcontrol 地图离线加载本地切片地图数据C #Devexpress的Mapcontrol是一个强大的地图控件,可以连接Bing等网络地图,也可以连接搭建的WMS服务器地图,并且可以在地图上进行各种图形的绘制,但是我们会遇到某些客户环境是没有网络的,但是需要有离线的地图展示,因此可以参照本文方法进行离线地图加载。未经作者许可,禁止转载!1、首先我们需要下载...
2019-07-28 15:53:32 5117 7
原创 C# Devexpress GridControl主从表设置不同视图并展开(数据源为DataTable)
Devexpress GridControl主从表设置不同视图并展开(数据源为DataTable)1.先获取主从表的数据,并在dataset中指定主从表的关系Relations。2.在主视图的gridView1_MasterRowGetRelationName事件中将e.RelationName = "level1"属性设置为指定的子视图级别名称即可展开子表时按对应的视图展开。1.先获取主从表的...
2019-04-27 17:18:33 5333
获取权限打开注册表C#
2022-08-24
贝塞尔曲线数学曲线WPF
2020-09-14
开发自开源库SharpVectors将svg格式图片直接转换为Xaml代码
2020-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人