C# 桌面UI适配国产Linux:踩坑记。

摘要

为了满足国营企业的需求,我尝试在C#上兼容中标麒麟和神州龙芯,但遇到了一些问题。在龙芯版本中,pipe2无法使用,但在x64版本中可以。UI开发必须使用主线程信息循环系统和自定义信息来实现跨进程操作UI,这就像Winform和WPF中的Inv…一样重要。

正文

C# 搞桌面上UI兼容国内麟麟Linux 神州龙芯碰到的一些坑

因为一些国营企业有国内生产制造的的要求,因此搞了C#兼容中标麒麟,兼容了X64和神州龙芯MIPS版本号

1、 在中标麒麟的神州龙芯版本号中 pipe2 不可以应用,x64版本号上却可以用。  

pipe2 用于做自定信息的,搞UI是必须主线任务程信息循环系统,此外还必须自定信息来完成跨进程来实际操作UI,便是Winform和WPF里的Invoke和BeginInvoke,别的进程推送自定信息到主线任务程,主线任务程接受以后,就实行相对应的UI实际操作。假如用XSendEvent来完成,延迟时间很严重。之后参照Mono里的完成,把pipe2改为用Socket就可以了。

 

2、在中标麒麟的神州龙芯版本号中发生任务栏图标闪动,无尽激话获得聚焦点,x64版本号却没什么问题。实际上便是FocusIn 信息里,假如再启用XRaiseWindow(Display, Handle);XSetInputFocus(Display, Handle, 0, IntPtr.Zero);便会发生这类无限循环。之后加个分辨就好了。

 

3、此次是中标麒麟的x64版本号的文档访问 提示框不稳定,提示框是启用Gtk来完成的,只有调用个文档提示框了,不依靠GTK的。

 

运作实际效果,CPF做的IM通信软件

 

 

关注不迷路

扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!

温馨提示:如果您访问和下载本站资源,表示您已同意只将下载文件用于研究、学习而非其他用途。
文章版权声明 1、本网站名称:宇凡盒子
2、本站文章未经许可,禁止转载!
3、如果文章内容介绍中无特别注明,本网站压缩包解压需要密码统一是:yufanbox.com
4、本站仅供资源信息交流学习,不保证资源的可用及完整性,不提供安装使用及技术服务。点此了解
5、如果您发现本站分享的资源侵犯了您的权益,请及时通知我们,我们会在接到通知后及时处理!提交入口
0

评论0

请先

站点公告

🚀 【宇凡盒子】全网资源库转储中心

👉 注册即送VIP权限👈

👻 全站资源免费下载✅,欢迎注册!

记得 【收藏】+【关注】 谢谢!~~~

立即注册
没有账号?注册  忘记密码?

社交账号快速登录