zoukankan      html  css  js  c++  java
  • 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通讯软件

    签名:<-CPF C# 跨平台桌面UI框架,支持Windows,Mac,Linux,包括XP,国产麒麟Linux等等->
  • 相关阅读:
    json2源码
    在table中插入别的代码
    基于HTML5和Javascript的移动应用架构
    webkitscrollbar
    性能调优之Javascript内存泄漏
    javascript时区函数介绍
    几道面试题
    CSS property: webkitbackfacevisibility
    某人2013js趋势的一些判断
    用js操作cookie保存浏览记录
  • 原文地址:https://www.cnblogs.com/dskin/p/14779155.html
Copyright © 2011-2022 走看看