分类: .Net

30 篇文章

thumbnail
IoT Power PC 端技术总结 – 5 电流波形展示
系列文章合集:IoT Power PC 端技术总结 这一节大致记录一下软件上的波形是如何展示的,以及为什么要这样处理展示 高分辨率下的波形 当分辨率足够高时,设备抓到的波形必定会有较大的波动起伏,就类似于下面这样 直接这样展示也很正确,但是不要忘记,我们使用的是一秒钟一万个点的数据,实际给用户展示的话,波形就会像是这样: 数据全部堆在一起,看不出其…
thumbnail
IoT Power PC 端技术总结 – 1 WPF单文件化
系列文章合集:IoT Power PC 端技术总结 单文件化的取舍 实际上对于现在的大部分软件来说,不需要做单文件化,因为基本都是一个安装包来把软件安装到固定位置,这时软件有多少文件并不是个重要的事情。 但是缺点也比较明显,如果你在公司内想把软件分享给同事,可能就需要重新找到你之前使用的安装包才可以。 如果软件本体是单文件化的,那么在分享时可以直接…
thumbnail
IoT Power PC 端技术总结 – 0序章
如果有更新,我会将每个章节的链接都放在这里 1 WPF单文件化 2 与设备通信 3 STM8的串口ISP升级 4 数据的记录与存储 5 电流波形展示 关于IoT Power PC 客户端 一直没时间整理一下这个软件用到的各种技术,我觉得有必要记录一下,一方面是防止我时间太久忘记这些技术的细节和使用的原因,另一方面可能有些朋友也会遇到相同的问题。 软…
thumbnail
如何让C#提供回调函数,给Rust编写的DLL调用
前情提要: 如何用C#调用RUST的DLL C#从C/RUST DLL接口获取数组/字符串数据 前面研究过了基础的rust提供dll给C#使用的一些操作,这篇文章就是介绍如何在C#中声明回调函数,提供给rust端来进行调用 基本概念如下: 回调函数(C#端编写) DLL(Rust编写) C#代码调用DLL中的函数,将回调函数作为参数传入,配置回调函…
thumbnail
WPF软件因中文名无法启动,原因竟是英特尔驱动
该问题目前已被intel修复 起因 最近在测试IoT Power客户端时,遇到了一个神奇的问题:软件打不开了。 排查原因的时候,我发现把exe文件名改成纯英文,就能正常打开了 一般来说这也正常,最近代码更新了不少东西,说不准哪里改出来的问题。 但我还是把原因想得太简单了 排查 既然中文文件名会报错,那我进vs调试一下,看看哪一行炸了,不就知道原因了…
thumbnail
Avalonia使用XAML资源实现动态多语言适配i18n
在WPF项目中,我们可以新建XAML,新建一个ResourceDictionary,存放字符串;XAML显示时使用{DynamicResource xxxx}的方式,来实现动态的多语言功能。(比如这篇文章就是这样做的) 在Avalonia中,我们也可以使用类似的方法来实现这个功能。 准备工作 这里我们直接新建一个Avalonia MVVM的工程模板…
thumbnail
MVVM 工具包源生成器的简单使用,简化WPF/Avalonia的绑定代码
CommunityToolkit.Mvvm(MVVM 工具包)是微软把之前的Microsoft.Toolkit.Mvvm复活后的一个项目,最早的时候还在研究ReactiveX,不过在发现微软复活了这个老项目,并且还有源生成器的这种新特性后,直接转投研究MVVM 工具包了 先来个例子 代码 先来个简单的例子演示一下这个包的几个小功能 比如我现在又个小…
thumbnail
C#从C/RUST DLL接口获取数组/字符串数据
上一篇文章《如何用C#调用RUST的DLL》介绍了如何在c#中调用rust的dll,但是那篇文章只演示了传递基本类型,和使用c#传入数组到dll接口。如果我们需要从dll中读取数组或字符串数据,应该如何操作呢?本篇文章就将描述具体的实现方法 dll端的接口 这里我们用c来当作类比,另外,这里的代码将忽略引用的包(include与use) //返回t…
thumbnail
如何用C#调用RUST的DLL
最近(半年前)有项目需要使用c#调用rust的dll,所以研究了一下如何调用(其实就是C#效率太低了,为了提高效率才用的这个办法) 需要实现的操作: c#调用RUST接口,传入int,不返回值 c#调用RUST接口,获取i32 C#传入byte数组 先新建一个rust项目: cargo new csharpdll --lib 然后这里要注意,如果你…
thumbnail
如何让MAUI项目打包成apk而不是abb
这几天试了试maui,打包apk的时候发现,以前xamarin的方式,打包出来的文件变成了abb格式,但是我想要apk格式,怎么打包呢 下面演示下打包apk的完整流程 双击项目名,打开你的项目配置(或者直接改csproj文件) 在与TargetFrameworks所在的PropertyGroup加一个参数: <AndroidPackageFo…
thumbnail
WPF中绑定快捷键
有些软件中想添加一个快捷键,触发某某事件,来实现功能,这时候就需要添加快捷键了,具体步骤如下 首先要看你的快捷键范围,比如我想让快捷键在整个窗体里都能被触发,那么我就要在Window里面加设置内容。 首先定义一个名称,比如叫SendUartData: <Window.Resources> <RoutedUICommand x:Ke…
thumbnail
控制FlowDocumentScrollViewer滚动到最下方
由于我在llcom里使用了FlowDocumentScrollViewer来实现可滚动的数据收发内容显示,但是遇到了一个问题 怎么保证在数据刷新时,FlowDocumentScrollViewer自动滚动到最下方? 其实这个解决方案很简单,但是在stackoverflow上面的各种答案把真正能解决的答案混淆得找不到了? 解决方案 比如我有下面的这段…
thumbnail
使用AvalonEdit实现WPF的Lua编辑器
由于LLCOM里面内置了Lua代码的编辑器,所以我就使用了AvalonEdit这个轮子,不过一开始的Lua语言支持让我一顿好找 不过好在找到了网上的资料,我就把整个实现过程贴在下面 准备 先去nuget安装一下AvalonEdit,以备后面使用: 接着把下面的文件内容,保存为Lua.xshd文件名的文件: <?xml version="1.0…
thumbnail
解决软件升级后user.config数据被还原的问题
上篇文章讲的是使用C#默认的设置功能,软件再打开后会自动新建一个user.config文件来存储数据。 但是会有很大概率遇到一个问题:当你更改了软件版本之后,再次打开软件,设置就变成默认的了,这是为何呢? 因为新版本和旧版本软件的配置文件并不在同一个目录下 解决这个问题很简单,利用C#自带的导入旧版本配置接口就可以了,我这里直接参考了stackov…
thumbnail
使用C#自带的设置功能(user.config)
最近几天又要填坑啦,LLCOM写得差不多了,很多东西需要记一下,以免忘掉 C#工程自带了一共设置的功能,在我的wpf项目里面,简单地用了一下这个功能 开始使用 我们可以点开解决方案资源管理器中的Properties: 在左边,找到设置,所有的设置项都可以在这里新建,并且设置默认值,如下面所示: 我们拿第一个dataToSend设置项举例吧,如果你想…