1. 什么是Sharpui

        Sharpui是居于DUI思想的一套界面引擎,採用纯c++开发,实现完整的消息处理机制、渲染引擎分离以及灵活的控件扩展,是一款c++真正意义上的界面和业务逻辑分离的界面引擎。

Sharpui通过把界面元素抽象为一个一个单独的绘制单元,然后通过模版的概念把这些绘制单元又一次组合成一个逻辑控件。因此,界面引擎实现最核心的渲染和绘制单元,通过组合得到各种各样的逻辑控件。从而满足不断变化的业务需求,并且。从根本上使得界面的开发简单、高效,业务真正地仅仅关心自己的业务逻辑,至于业务数据的展现则通过界面引擎数据绑定核心层自己主动完毕。

以下是Sharpui一部分控件截图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hpbmEwODUx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

2. Sharpui的优势

        Sharpui是眼下c++领域优秀的界面引擎,其採用了和传统全然不一样的实现方式,传统的DUI界面库一般使用的是界面驱动数据;而Sharpui採用的是数据驱动界面。

传统界面驱动数据的界面引擎缺点:

  • 用户的业务数据和界面耦合性较高;
  • 数据和UI的交互开发量较大。并且easy出错;
  • 整个系统的扩展性和灵活性受到极大限制;
  • 系统开发效率相对较低,开发的代码量大。
  • 差点儿不支持键盘操作。

Sharpui界面引擎採用数据驱动界面方式实现。其特点例如以下:

  • 实现数据绑定,自己主动完毕用户数据和UI控件同步更新,用户真正仅仅需专注业务逻辑。开发效率更高效、更智能、更轻松;
  • 对控件抽象。居于类级别控件属性机制。有效节约系统占用的内存空间;
  • 实现完整的虚拟显示机制,轻松支持100000+数据项的呈现,大幅加速应用程序的启动速度和降低内存的占用;
  • 完好的动画框架,用户可以轻松开发各种高效、酷炫的动画,满足实际业务需求,提升产品的用户体验。
  • 完整的键盘支持,没有鼠标也能完毕界面操作;
  • 先进资源结构设计,可轻松实现多语言、换肤效果(可以更换布局、内容);
  • 千锤百炼的重构和优化,使得Sharpui在内存和性能都有完美体现。

上述简单说明了Sharpui相对传统的DUI界面特有的优势。后面会通过实际代码演示数据驱动界面的强大、简单和高效。





3. Sharpui总体结构

        下图是整个Sharpui的总体结构:

         





4. Hello,Sharpui

        Sharpui进行项目开发简单、高效,以下给出一个简单的事例让大家有个直观的印象,实现一个Hello,Sharpui的窗体显示:

        布局文件描写叙述例如以下:





        <?xml encoding="utf-8" ?>

        <Window Name="window1" >

            <Window.Resources >

                <SolidColorBrush x:Key="Window_Bk" Color="#288ADD" />

                <SolidColorBrush x:Key="Border_Bk" Color="#298ADD" />



                <Style TargetType="Window">

                    <Setter Property="Background" Value="{DynamicResource Window_Bk}" />

                    <Setter Property="BorderBrush" Value="{DynamicResource Border_Bk}" />

                    <Setter Property="BorderThickness" Value="0" />

                    <Setter Property="Template">

                       <Setter.Value>

                            <ControlTemplate TargetType="Window">

                                <Border Background="{TemplateBinding}" CornerRadius="2.5"

                                        BorderBrush="{TemplateBinding}" BorderThickness="{TemplateBinding}" >

                                    <AdornerDecorator>

                                        <ContentPresenter />

                                    </AdornerDecorator>

                                </Border>

                            </ControlTemplate>

                        </Setter.Value>

                    </Setter>

                </Style>

            </Window.Resources>

            <Grid>

                <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="Hello,Sharpui" />

            </Grid>

</Window>

以下附上几个Demon截图(如须要进一步了解请加QQ群:):

Sharpui主要控件演示界面:

主要Demon截图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

Sharpui企业版-简单介绍【01】 【QQ群:206378966】的更多相关文章

  1. 使用Kafka的一些简单介绍: 1集群 2原理 3 术语

    目录 第一节 Kafka 集群 Kafka 集群搭建 Kafka 集群快速搭建 第二节 集群管理工具 集群管理工具 集群 Issues 第三节 使用命令操纵集群 第四节 Kafka 术语说明 第五节 ...

  2. Python中的装饰器的简单介绍01

    一. 装饰器是什么? 简单来说,装饰器其实也就是一个函数,一个用来包装函数的函数,返回一个修改之后的函数对象,将其重新赋值原来的标识符,并永久丧失对原始函数对象的访问. 二.装饰器语法 (1)无参数装 ...

  3. 笔记5:QQ群聊天机器人

    之前经常在别人群里看到有自动回复消息的机器人. 功能有好多,可以玩各种游戏.觉得还蛮有意思的.. 于是就去请教别人怎么弄得,但是他们都说得好复杂,好高大上,无非就是不想让别人弄 本人是个不会轻易放弃的 ...

  4. 图像切割之(五)活动轮廓模型之Snake模型简单介绍

    图像切割之(五)活动轮廓模型之Snake模型简单介绍 zouxy09@qq.com http://blog.csdn.net/zouxy09 在"图像切割之(一)概述"中咱们简单了 ...

  5. windows集群简单介绍

    windows集群简单介绍仔细看过以前网友发表的一些文章,总觉得对windows集群没有详细介绍,我也是借花献佛,引用了一些技术性文档.目前应用最为广泛的集群计算技术可以分为三大类:高可用性集群技术. ...

  6. QQ群排名霸屏技术居然是这样简单

    最近做了一些收费的QQ群,收多少钱,一块钱的入门费,也就是说进入我的QQ群必须要1块钱的会费. 我的QQ群主要是干嘛呢,放些电影,比如说市面上电影院,正在播放的,最新最热门的,火爆的一些电影. 先前呢 ...

  7. ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建

    ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...

  8. 【Hadoop离线基础总结】zookeeper的介绍以及集群环境搭建、网络编程和RPC的简单了解

    ZooKeeper的介绍以及集群环境搭建.网络编程和RPC的简单了解 ZooKeeper介绍 概述 ZooKeeper是一个分布式协调服务的开源框架,主要用来解决分布式集群中应用系统的一致性问题.例如 ...

  9. 我们是怎么管理QQ群的

    文章背景:腾讯平台上的qq群数以千万百万计,但99%的在吹水扯蛋,从早上的问好开始,到晚上的晚安,无一不浪费青春之时间,看之痛心,无力改变,只好自己建了一个,希望能以此来改变群内交流的氛围或环境. 以 ...

随机推荐

  1. 影响世界的IT

    MIT BBS上说微软电话面试的一道题就是"Who do you think is the best coder,and why?”.我觉得挺有意思的,也来凑个热闹.排名不分先后. 1.Bi ...

  2. CDC变更数据捕获

    CDC变更数据捕获 (2013-03-20 15:25:52)   分类: SQL SQL Server中记录数据变更的四个方法:触发器.Output子句.变更数据捕获(Change Data Cap ...

  3. Microsoft Project 2010 简体中文专业版 + 永久激活密钥

    Microsoft Project 2010 简体中文专业版 + 永久激活密钥 (2014-02-17 11:44:16) 转载▼ 标签: 文化 分类: 学习 Microsoft Project已成为 ...

  4. IOS深入学习(1)之图标文件(icon files)

    1 前言 我相信大家在做IOS一定经常会跟图标文件(icon files)打交道,今天我们就来简单的学习一下iPhone和iPad程序中的icon files. 2 详述 除了iTunesArtwor ...

  5. spring的作用及优势---第一个spring示例

    Spring 的作用及优势  * Spring 用于整合,好处是解耦. 解耦,可以降低组件不组件乊间的关联,改善程序结构,便于系统的维护和扩展. 我们在使用 Spring 框架时,主要是使用 Spri ...

  6. css首行缩进两个字符串

    text-indent:2em; 这个属性就可以缩进,但是2em不确定是什么意思:抽空总结一下

  7. SQL SERVER 2000/2005/2008数据库数据迁移到Oracle 10G细述

    最近参与的一个系统涉及到把SQL Server 2k的数据迁移到Oracle 10G这一非功能需求.特将涉及到相关步骤列举如下供大家参考: 环境及现有资源: 1.OS: Windows 7 Enter ...

  8. python手记(36)

    #!/usr/bin/env python #-*- coding: utf-8 -*- #code:myhaspl@qq.com import cv2 import numpy as np fn=& ...

  9. Javascript 原型和原型链

    先来了解一下Javascript中的原型:”原型也是一个对象,原型可以用来实现继承...“ 对于 原型,构造函数,以及实例之间的关系:“每个(构造)函数都有一个原型属性,原型对象都包含一个指向构造函数 ...

  10. .cs文件与aspx.cs文件之间的区别是什么???他们的作用是什么???ASPX文件的作用是什么?

    一般在vs里面新建一个页面会产生两种文件:一种是后缀名为.cs的,一种是.aspx. 简单的说,.cs文件一般是在里面实现功能的,而.aspx就是实现界面效果的. 区别:.cs文件里面写的是.net的 ...