用DevExpress实现基于HTMLCSS的桌面应用程序的UI(三)

news2024/11/17 16:03:57

DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

注意:目前基于HTML & CSS的控件正在积极研发中,可以作为技术预览提供,如果需要使用请下载最新版组件体验哦~

获取DevExpress 最新版下载(q技术交流:600715373)

一组控件和组件允许开发人员构建HTML格式的UI,并使用CSS样式自定义UI元素的外观设置、大小、填充和布局选项,不再需要处理自定义绘制事件或更改大量属性来修改控件以匹配UI规范,可以使用HTML和CSS标记的知识为桌面应用程序构建布局。

在上文中(点击这里回顾>>),我们为大家介绍了HTML-CSS标记的动态自定义项目、数据绑定等,本文将继续为大家介绍如何使用外部控件和就地编辑器、按钮的使用等,欢迎持续关注这个系列的文章哦~

HTML-CSS标记

外部控件和就地编辑器

<input>标记允许开发者向基于HTML的UI添加就地编辑器或外部控件,标签支持以下控件:

HtmlContentControl

使用<input>标记作为想要在布局中显示的外部控件和存储库项(就地编辑器)的占位符。

Data Grid Views (ItemsView, TileView和 WinExplorerView)

使用<input>标记作为Repository Items(就地编辑器)的占位符,不能使用此标记在数据网格视图中显示外部控件。

HTML

<input name="textEditEmail" class="field-input"/>
<input name="repositoryItemPictureEdit1" value="${ImageData}" class="editor"/>

按钮

按照下面的步骤渲染一个按钮:

  • 定义一个呈现按钮的HTML元素,指定元素的类(例如,将类名设置为“button”)。
  • 在CSS代码中,定义“button”类来指定元素的显示属性。
  • 还为按钮类定义悬停状态,以便在元素悬停时突出显示元素。

下面的示例使用<div> 标记来定义一个按钮:

HTML

<div id="uploadBtn" class="centered button">Upload</div>
<div id="removeBtn" class="centered button">Remove</div>

CSS

.centered{
align-self:center;
}
.button {
width: 70px;
height: 20px;
min-width: 20px;
padding: 8px;
margin-left: 2px;
opacity: 0.5;
}
.button:hover {
border-radius: 4px;
background-color: #F2F2F2;
}

UI元素鼠标操作

开发者可以再控制级、HTML标记级和使用Fluent API时响应HTML UI元素上的鼠标操作。

控件的鼠标事件

支持HTML的控件公开可以处理的事件,以响应HTML UI元素上的鼠标动作,这些事件通常被称为:

  • ElementMouseClick
  • ElementMouseDown
  • ElementMouseMove
  • ElementMouseOut
  • ElementMouseOver
  • ElementMouseUp

C#

void htmlContentControl1_ElementMouseClick(object sender, DevExpress.Utils.Html.DxHtmlElementMouseEventArgs e) {
if(e.ElementId == "btnSend") {
//...
}
}

VB.NET

Sub HtmlContentControl1_ElementMouseClick(sender As Object, e As DevExpress.Utils.Html.DxHtmlElementMouseEventArgs) Handles HtmlContentControl1.ElementMouseClick
If e.ElementId = "btnSend" Then
'...
End If
End Sub

HTML鼠标事件

HTML标记中支持以下鼠标事件:onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove和onmouseout,开发者可以通过以下方式订阅这些事件:

  • 用下面的签名在代码后面定义一个方法:

C#

void <MethodName>(object sender, DxHtmlElementMouseEventArgs args)

VB.NET

Sub <MethodName>(ByVal sender As Object, ByVal args As DxHtmlElementMouseEventArgs)
  • 在HTML代码中,将元素的事件设置为已定义方法的名称。

HTML

<img onclick="<MethodName>" ... />

示例:

C#

void OnPhoneClick(object sender, DxHtmlElementMouseEventArgs args) {
XtraMessageBox.Show("Phone!");
}

VB.NET

Sub OnPhoneClick(ByVal sender As Object, ByVal args As DxHtmlElementMouseEventArgs)
XtraMessageBox.Show("Phone!")
End Sub

HTML

<div class='buttonPanel'>
<img onclick="OnPhoneClick" src="PhoneCall" class="button" />
</div>

Fluent API

开发者可以使用Fluent API订阅元素的鼠标单击事件。

C#

var fluent = context.OfType<ViewModel>();
fluent.BindCommandToElement(htmlContentControl, "btnPhone", x => x.Phone);
//...
public class ViewModel {
public void Phone() {
//...
}
//...
}

VB.NET

Dim fluent = context.OfType(Of ViewModel)()
fluent.BindCommandToElement(htmlContentControl, "btnPhone", Sub(x) x.Phone())
'...
Public Class ViewModel
Public Sub Phone()
'...
End Sub
End Class
'...

HTML

<img id="btnPhone" src="PhoneCall" class="button" />

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/72943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Boot超大文件上传,实现秒传

文件上传是一个老生常谈的话题了&#xff0c;在文件相对比较小的情况下&#xff0c;可以直接把文件转化为字节流上传到服务器&#xff0c;但在文件比较大的情况下&#xff0c;用普通的方式进行上传&#xff0c;这可不是一个好的办法&#xff0c;毕竟很少有人会忍受&#xff0c;…

VMware Fusion 13.0 SLIC 2.6 MOD

请访问原文链接&#xff1a;VMware Fusion 13.0 SLIC 2.6 MOD&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org 使用 VMware Fusion 在虚拟机 (VM) 中运行 Windows、Linux、容器、Kubernetes 等而无需重新启动&#xff0c;充…

电信CDMA PDU短信号码字段编码转换的python实现

参考链接&#xff1a;CDMA(3GPP2)SMSPDU全解析-爱码网 CDMA SMS pdu解码_zx249388847的博客-CSDN博客_cdma smscdma pdu解析终极文档_月之海的博客-CSDN博客CDMA PDU 编解码补充解析_zx249388847的博客-CSDN博客 CDMA – lytsings Blog 一、PDU串解析 CDMA的pdu格式与GSM的相…

JavaMail 网易邮件发送demo-发送带附件的邮件

本文为joshua317原创文章,转载请注明&#xff1a;转载自joshua317博客 JavaMail 网易邮件发送demo-发送带附件的邮件 - joshua317的博客 使用Java应用程序发送 E-mail&#xff0c;需要在机子上安装 JavaMail API 和Java Activation Framework (JAF) 。 可以从 Java 网站下载最…

装饰器(Decorator)模式Recap

设计模式是一套积累并融合了大量经验与成熟思考的设计心法&#xff0c;每一个程序员在成长道路上都应该始终保持对最佳设计方案的不断追求。设计模式也会常用常新&#xff0c;值得反复研究和应用。本文简单Recap一下装饰器&#xff08;Decorator&#xff09;模式。 说句体外话…

【Paper】2020_离散多智能体系统的事件触发二分一致性研究_刘雨欣

文章目录第 4 章 有向符号图下离散多智能体系统的事件触发二分一致性4.3.1 示例一4.3.2 示例二系统 动态方程、控制输入及事件触发条件分别如式(2.1)、(3.1)及式(3.6)所示。 本文考虑一阶离散多智能体系统&#xff0c;第 iii 个智能体的动态方程如下: xi(k1)xi(k)ui(k)(2.1)\b…

千字长文!C++每日一练——Day3

&#x1f411;本文作者&#xff1a;C橙羊&#x1f411; &#x1f3ae;&#x1f50a;本文代码适合编译环境&#xff1a;DEV-C&#x1f4bb; ✨&#x1f9e8;温馨提示&#xff1a;此文乃作者心血&#xff0c;如要转载请标注版权&#xff0c;否则视为抄袭&#xff01;&#x1f389…

多线程——线程同步器CountDownLatch

多线程——线程同步器CountDownLatch&#xff08;一&#xff09;CountDownLatch案例入门【1】CountDownLatch和join的区别【2】CountDownLatch案例一&#xff1a;等待线程等待工作线程【3】CountDownLatch案例二&#xff1a;主线程main等待子线程【4】CountDownLatch案例三&…

.NET Conf China 2022 精彩回顾 | IOT专场

12月充满惊喜 各种美好的节日纷至沓来 奖励一年辛苦劳作的我们 本月程序员第一场节日 就是精彩的 .NET Conf China 2022 .NET Conf China 2022是面向开发人员的社区峰会&#xff0c;延续 .NET Conf 2022的活动&#xff0c;庆祝 .NET7的发布和回顾过去一年来 .NET在中国的发…

举个栗子~Alteryx 技巧(4):教你设置 Alteryx Server 用户权限

分析用户在用 Alteryx Designer 创建好工作流之后&#xff0c;如何在企业内部实现共享和管理分析工作流程、模型及数据呢&#xff1f;方法很简单&#xff1a;发布到 Alteryx Server &#xff01; Alteryx Server 通过内置的数据治理、集中管理的安全性和高可用性&#xff0c;可…

svn:E720005 move .svn/tmp拒绝访问

cleanup也clean不了 此时要用sqlite3.exe来解决了到有.svn的目录地下&#xff0c;把sqllite3.exe拷贝到这个下面 在目录里面打开cmd窗口&#xff0c;执行 sqlite3 .svn/wc.db "select * from work_queue" 如果查出内容&#xff0c;那么执行 sqlite3 .svn/wc.db …

【Dubbo3高级特性】「性能优化技术」Dubbo3完成扩展使用高效的Kryo和FST序列化开发实战

系列文章目录 如果你看到了这里&#xff0c;那么接下来你将会认识Dubbo3的诞生将如何引领微服务领域更进一步&#xff0c;从而迈入云原生的领域&#xff0c;这当然不仅仅是Dubbo3&#xff0c;之前也介绍了Java生态另外一个云原生领域的技术Quarkus等技术&#xff0c;而本文内容…

Spring Boot 实现微信点餐系统

架构 前后端分离&#xff1a; 部署架构&#xff1a; 补充&#xff1a; setting.xml 文件的作用&#xff1a;settings.xml是maven的全局配置文件。而pom.xml文件是所在项目的局部配置。Settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。 maven的作用…

校招求职经验分享——我是如何本科进入大厂的

写在开头 最近签完了三方&#xff0c;大学前三年的生涯规划和努力最终还是得到了兑现&#xff0c;脑子里不断涌现这几年来的经历&#xff0c;一直想着写点什么东西记录一下&#xff0c;刚好大四空闲时间真的太多&#xff0c;心血来潮&#xff0c;不如还是写写吧&#xff0c;记录…

mysql cdc 整库迁移 (mysql to mysql)

技术思想 利用 mysql catalog&#xff0c;mysql cdc&#xff0c;flink jdbc 等技术实现 mysql 整库迁移至下游数据库&#xff0c;这里是示范 mysql to mysql &#xff0c;其他 sink 组件可自行扩展实现。 通过 flink ParameterTool&#xff0c;可以选择是整库同步还是多表亦或…

2023年天津天狮学院专升本报名考试的安排

天津天狮学院2023年高职升本科考试报名时间安排的通知 一、报名条件 报名条件和具体要求按照天津市招生委员会的文件规定执行。考生必须完成文化课报名环节&#xff0c;且填报天津天狮学院志愿&#xff0c;且具备我校提出的线上考试条件&#xff0c;方可报考我校专业课考试。考…

Java作业

这里写自定义目录标题java16次作业新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是…

python-网络编程

python-网络编程 网络编程的理论概述&#xff1a; 现在的生活离不开网络&#xff0c;例如手机&#xff0c;电脑&#xff0c;平板&#xff0c;都是网络的代名词&#xff0c;通过一些APP&#xff0c;浏览器&#xff0c;获取大量的信息如 文字、声音、视频&#xff0c;这都是从网…

[Linux]------线程同步和信号量

文章目录前言一、条件变量同步概念与竞态条件条件变量函数初始化销毁等待条件满足唤醒等待为什么pthread_cond_wait需要互斥量&#xff1f;条件变量使用规范二、生产者消费者模型为何要使用生产者消费者模型生产者消费者模型的优点基于BlockingQueue的生产者消费者模型C queue模…

1.MyBatis简介

1.概念 MyBatis是一款开源的持久层框架&#xff0c;它支持定制化SQL、存储过程以及高级映射。 与其它ORM框架不同&#xff0c;MyBatis没有将Java对象与数据表关联起来&#xff0c;而是作为Java方法和SQL语句的桥梁&#xff0c;一般称它为“半自动化ORM”框架。 2.Mybatis架构 …