HTML and CSS Support HTML 和 CSS 支持

news2024/11/19 23:22:08

GoTo DevExpress Data Grid 数据网格

HTML and CSS Support HTML 和 CSS 支持

在这里插入图片描述

HTML和CSS支持允许您创建完全自定义的UI元素,并消除使用基于属性的UI自定义和CustomDraw事件。您可以构建 HTML 格式的 UI,并使用 CSS 样式自定义 UI 元素的外观设置、大小、填充和布局选项。

主要功能包括:

  • 通过阴影、闪亮、圆角、鼠标悬停/单击等效果增强 DevExpress WinForms 控件的视觉外观。
  • 使用 CSS 创建响应式 UI。
  • 在 HTML 标记中指定数据绑定表达式以显示数据源中的值。
  • 处理事件以响应 HTML UI 元素上的鼠标操作。
  • DirectX 硬件加速以获得更好的性能。
  • HTML和CSS模板编辑器集成到Visual Studio IDE中。

以下DevExpress WinForms控件内置了HTML和CSS支持:

  • Accordion
  • Alert Controls and XtraMessageBox
  • Data Grid (ItemsView, TileView, WinExplorerView)
  • DirectX Form
  • Listbox and ComboBox
  • Gantt Control
  • HTML Content and Popup
  • Scheduler
  • TreeList

Best Practices 最佳实践

阅读以下主题,了解使用 DevExpress HTML/CSS 模板时的重要建议:HTML/CSS 最佳实践。

HTML-CSS Markup HTML-CSS 标记

HTML 和 CSS 感知控件和组件从模板呈现其 UI。控件模板的 HTML 标记指定控件的内容(UI 元素),而模板的 CSS 代码指定应用于 UI 元素的样式、显示和布局设置。

使用控件的 HtmlTemplate 属性指定模板。在设计时,您可以在 HTML 模板编辑器中创建模板。
在这里插入图片描述
此编辑器支持语法突出显示、IntelliSense(代码完成辅助工具)和预览窗格。预览窗格允许您检查视觉元素 - 当您将鼠标悬停在元素上时找到 HTML 标记。

Reusable HTML & CSS Templates 可重复使用的 HTML 和 CSS 模板

HTML模板编辑器允许您从DevExpress HTML和CSS模板库中加载预先设计的模板。这些模板基于我们的 WinForms 演示应用程序中使用的模板。您可以“按原样”使用这些模板,也可以根据需要进行自定义。

在这里插入图片描述
您可以创建一个HTML和CSS模板,将模板保存到画廊中,并在需要时在任何WinForms项目中使用它。

Example 例

下面的示例演示一个 HtmlContentControl,它从分配的 HTML-CSS 模板呈现 UI。该控件绑定到 Employee 对象的列表。模板的 HTML 代码包含用于显示数据源中的值的数据绑定表达式。

在这里插入图片描述

public class Employee {
    public string DisplayName { get; set; }
    public string FullName { get; set; }
    public SvgImage Photo { get; set; }
}
//...
Employee emp = new Employee();
emp.DisplayName = "Leah Test Coordinator";
emp.FullName = "Leah Simpson";
SvgImageCollection imageCollection = new SvgImageCollection();
imageCollection.Add("photo", "image://svgimages/icon builder/business_businesswoman.svg");
emp.Photo = imageCollection["photo"];
List<Employee> list = new List<Employee>();
list.Add(emp);
htmlContentControl1.DataContext = list;
//...
void OnButtonClick(object sender, DxHtmlElementMouseEventArgs args) {
    if(args.ElementId == "uploadBtn") {
        //...
    }
    if (args.ElementId == "removeBtn") {
        //...
    }
    XtraMessageBox.Show("Button " + args.ElementId + " clicked");
}

Specify HTML-CSS Templates Dynamically 动态指定 HTML-CSS 模板

许多控件使用 HTML-CSS 模板来呈现其项。例如,ItemsView 从 ItemsView.HtmlTemplate 属性指定的默认模板生成其所有项(记录)。

这些控件具有用于将模板分配给项的事件,从而动态覆盖默认模板:

  • ItemsView.QueryItemTemplate
  • WinExplorerView.QueryItemTemplate
  • GanttControl.QueryItemTemplate
  • TileView.CustomItemTemplate
Example 例

以下 ItemsView.QueryItemTemplate 事件处理程序根据项的类型(IsOwnMessage 设置)将不同的模板分配给不同的项。

您可以在以下演示中找到此示例的完整代码:聊天客户端。

void OnQueryItemTemplate(object sender, QueryItemTemplateEventArgs e) {
    var message = e.Row as DevAV.Chat.Model.Message;
    if(message == null)
        return;
    if(message.IsOwnMessage)
        Styles.MyMessage.Apply(e.Template);
    else
        Styles.Message.Apply(e.Template);
    //...
}

Customize Items Dynamically 动态自定义项目

从模板生成其项的控件还具有用于动态自定义每个项的事件:

  • ItemsView.CustomizeItem
  • WinExplorerView.CustomizeItem
  • GanttControl.CustomizeItem
  • TileView.ItemCustomize

在控件中的每个项显示在屏幕上之前,这些事件都会触发该事件。它们允许您访问将要呈现的单个 HTML 元素,并自定义其可见性和样式设置。

Example 例

以下示例根据自定义逻辑更改 HTML 元素的可见性。

您可以在以下演示中找到此示例的完整代码:聊天客户端。

//CustomizeItem event handler:
void OnCustomizeItem(object sender, CustomizeItemArgs e) {
    //...
    if(message.IsLiked) {
        var btnLike = e.Element.FindElementById("btnLike");
        var btnMore = e.Element.FindElementById("btnMore");
        if(btnLike != null && btnMore != null) {
            btnLike.Hidden = false;
            btnMore.Hidden = true;
        }
    }
    if(message.IsFirstMessageOfBlock)
        return;
    if(!message.IsOwnMessage) {
        var avatar = e.Element.FindElementById("avatar");
        if(avatar != null)
            //Display an empty region instead of the 'avatar' element.
            avatar.Style.SetVisibility(Utils.Html.Internal.CssVisibility.Hidden);
    }
//...
}

Data Binding 数据绑定

如果控件绑定到数据源,则可以在 HTML 标记中使用以下语法来显示数据源字段的值:

${FieldName}

“$”字符指定后面的文本是控件需要计算的表达式。表达式可以包含静态文本和到多个字段的数据绑定:

  • $text{FieldName}text
  • ${FieldName1}text{FieldName2}text

例如,以下 HTML 代码显示控件数据源中 “UserName” 字段的值:

<div class='contactName'>${UserName}</div>

以下示例在用户名前添加 ‘Welcome’ 字符串:

<h1>$Welcome {UserName}!</h1>

External Controls and In-place Editors 外部控件和在位编辑器

标记允许您向基于 HTML 的 UI 添加就地编辑器或外部控件。以下控件支持该标签:

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

数据网格视图(ItemsView、TileView 和 WinExplorerView)

使用 标记作为存储库项目(就地编辑器)的占位符。不能使用此标记在 Data Grid 视图中显示外部控件。
在这里插入图片描述

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

Buttons 按钮

请按照以下步骤呈现按钮:

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

以下示例使用

标记来定义按钮:

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

Images 图像

使用 HTML 标签显示图像。将图像源分配给标签的 src 属性。image source 可以是以下值之一:

  • 控件的 HtmlImages 集合中目标图像的名称或索引(例如 HtmlContentControl.HtmlImages)。
svgImageCollection1.Add("employee", "image://svgimages/icon builder/business_businesswoman.svg");
htmlContentControl1.HtmlImages = svgImageCollection1;
  • 一个绑定表达式 (${FieldName}),用于定义控件数据源中存储图像数据的字段。请注意,目标字段必须存储字符串(图像名称)或图像(Bitmap 或 SvgImage 对象)。不支持 ImageURL 和字节数组。

    HTML 模板检查数据字段是否包含 SVG 图形或位图。如果不是,模板将在分配给控件的 HtmlImages 属性的 SvgImageCollection 中查找具有指定名称的图像。

<img src="${LargePhoto}" width="100" height="100">

HTML-CSS-aware Controls 可识别 HTML-CSS 的控件

Html内容控件

HtmlContentControl 是一个图面,您可以在其中从 HTML-CSS 标记构建 UI。

在这里插入图片描述

Html内容弹出窗口

HtmlContentPopup 是 HtmlContentControl 的弹出版本。此组件从 HTML-CSS 代码生成 UI,并将其显示为浮出控件或模式窗口。
在这里插入图片描述

网格控件的项视图

新的 ItemsView 没有默认的数据表示形式。它仅从您使用属性指定的 HTML-CSS 模板或使用事件动态呈现其项目(数据记录)。

在这里插入图片描述

网格控件的平铺视图

TileView 从模板生成其项 (磁贴)。您可以在常规模板和基于 HTML-CSS 的模板之间进行选择。

在这里插入图片描述

GridControl 的 WinExplorer视图

WinExplorerView 支持 HTML-CSS 模板来构建卡片布局。您可以手动为每个显示样式指定 HTML-CSS 模板(ExtraLarge、Large、Medium、List、Tiles 等),也可以使用事件动态指定。

在这里插入图片描述

GanttControl 甘特图控制

GanttControl 允许您使用 HTML-CSS 标记来呈现许多元素:

  • 任务、摘要和里程碑
  • 常规任务进度和摘要任务进度
  • 常规任务基线、摘要任务基线和里程碑任务基线
  • Text Labels 文本标签
  • Interaction Tooltips 交互工具提示
  • Split Tasks 拆分任务

在这里插入图片描述

有关详细信息,请参阅以下主题:甘特图控件中的 HTML 模板。

Scheduler Control 调度程序控制

您可以在 SchedulerControl 中使用基于 HTML-CSS 的模板来呈现约会。
在这里插入图片描述

TreeList 树列表

WinForms TreeList 控件支持 HTML/CSS 模板,并允许您为节点及其空白区域生成唯一的自定义布局。使用以下 API 创建和应用 HTML 模板:

  • NodeHtmlTemplate - 指定节点的默认 HTML-CSS 模板。
  • EmptyTreeHtmlTemplate - 为空 TreeList 控件指定默认 HTML-CSS 模板。
  • HtmlTemplates - 可基于条件应用于 TreeList UI 元素的 HTML 模板集合。
  • QueryNodeTemplate - 允许您根据条件应用 HtmlTemplates 集合中的模板。
  • CustomizeNodeTemplate - 允许您自定义模板化节点。

在这里插入图片描述

DirectX Form DirectX 表格

标准 Visual Studio 表单的替代项,为其子控件启用 DirectX 硬件加速,并支持基于 HTML-CSS 的模板。

在这里插入图片描述

Alert Controls 警报控件

AlertControl 的模板允许您呈现现代应用程序通知。

在这里插入图片描述
请参阅使用 HTML 模板的警报窗口。

Listbox Controls and ComboBox Editor 列表框控件和组合框编辑器

您可以使用基于 HTML-CSS 的模板来呈现以下控件中的项:

在这里插入图片描述

Accordion Control 折叠控制

AccordionControl 允许您使用 HTML-CSS 模板来呈现其 UI 元素:

  • Items and groups 项和组
  • Footer elements 页脚元素
  • Elements in the minimized state, etc. 处于最小化状态的元素等。

在这里插入图片描述

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

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

相关文章

集群聊天服务器(7)数据模块

目录 Mysql数据库代码封装头文件与源文件 Mysql数据库代码封装 业务层代码不要直接写数据库&#xff0c;因为业务层和数据层的代码逻辑也想完全区分开。万一不想存储mysql&#xff0c;想存redis的话&#xff0c;就要改动大量业务代码。解耦合就是改起来很方便。 首先需要安装m…

如何确保Python爬虫程序的稳定性和安全性?

在当今数字化时代&#xff0c;Python爬虫被广泛应用于数据采集和信息抓取。然而&#xff0c;确保爬虫程序的稳定性和安全性是开发过程中的重要考虑因素。本文将探讨如何通过技术手段和最佳实践来提高Python爬虫的稳定性和安全性&#xff0c;并提供代码示例。 稳定性保障 1. 异…

【知识科普】统一身份认证CAS

什么是CAS 综合概述一、CAS概述二、CAS的组成与工作原理三、CAS的特性与支持四、CAS的应用场景 示例展示场景设定CAS认证过程 其他认证细节CAS认证过程的细节CAS认证过程的特性 参考文献 综合概述 统一身份认证CAS&#xff08;Central Authentication Service&#xff09;&…

golang通用后台管理系统09(系统操作日志记录)

1.日志工具类 package log/**** 日志记录 wangwei 2024-11-18 15:30*/ import ("log""os""path/filepath""time" )// 获取以当前日期命名的日志文件路径 func getLogFilePath() string {currentDate : time.Now().Format("2006-…

解决微信小程序自定义tabbar点击两次才能跳转

在每个页面的js文件下加上此代码&#xff0c;selected属性代表每一个页面的下标&#xff0c;在不同的js文件下&#xff0c;要对应不同的selected值 代码&#xff1a; onShow() { // 确保 TabBar 存在并且设置选中项 if (this.getTabBar && this.getTabBar()) { this.…

golang开源框架:go开源验证框架validator

validator 单个字段格式验证 先来一个单个字段格式的验证 目录结构 在main函数中 package mainimport "awesomeProject/validate"func main() {validate.SingleFieldValidate() }在validator.go中 package validateimport ("github.com/go-playground/val…

【Rust中的项目管理】

Rust中的项目管理 前言Package&#xff0c;Crate&#xff0c;Module &use &#xff0c;Path通过代码示例解释 Crate&#xff0c;Module &#xff0c;use&#xff0c;Path创建一个package&#xff1a;代码组织化skin.rs 中的代码struct & enum 相对路径和绝对路径引用同…

大型语言模型综述 A Survey of Large Language Models

文章源自 2303.18223 (arxiv.org) 如有侵权&#xff0c;请通知下线 这是一篇关于大语言模型&#xff08;LLMs&#xff09;的综述论文&#xff0c;主要介绍了 LLMs 的发展历程、技术架构、训练方法、应用领域以及面临的挑战等方面&#xff0c;具体内容如下&#xff1a; 摘要…

模型的评估指标——IoU、混淆矩阵、Precision、Recall、P-R曲线、F1-score、mAP、AP、AUC-ROC

文章目录 预测框的预测指标——IoU&#xff08;交并比&#xff09;分类预测指标混淆矩阵&#xff08;Confusion Matrix&#xff0c;TP、FP、FN、TN)Precision&#xff08;精度&#xff09;Recall&#xff08;召回率&#xff09;P-R曲线F1-scoreTPR、TNR、FPR、FNRROC曲线下面积…

【Android原生问题分析】夸克、抖音划动无响应问题【Android14】

1 问题描述 偶现问题&#xff0c;用户打开夸克、抖音后&#xff0c;在界面上划动无响应&#xff0c;但是没有ANR。回到Launcher后再次打开夸克/抖音&#xff0c;发现App的界面发生了变化&#xff0c;但是仍然是划不动的。 2 log初分析 复现问题附近的log为&#xff1a; 用户…

datawhale 2411组队学习:模型压缩4 模型量化理论(数据类型、int8量化方法、PTQ和QWT)

文章目录 一、数据类型1.1 整型1.2 定点数1.3 浮点数1.3.1 正规浮点数&#xff08;fp32&#xff09;1.3.2 非正规浮点数&#xff08;fp32&#xff09;1.3.3 其它数据类型1.3.4 浮点数误差1.3.5 浮点数导致的模型训练问题 二、量化基本方法2.1 int8量化2.1.1 k-means 量化2.1.2 …

ssm139选课排课系统的设计与开发+vue(论文+源码)_kaic

摘 要 互联网的普及&#xff0c;改变了人们正常的生活学习及消费习惯&#xff0c;而且也大大的节省了人们的时间&#xff0c;由于各种管理系统都再不断的增加&#xff0c;更方便了用户&#xff0c;也改良了很多的用户习惯。对于选课排课系统查询方面缺乏系统的管理方式&#x…

Datawhale组队学习】模型减肥秘籍:模型压缩技术3——模型量化

模型量化的目的是通过将浮点运算转换为定点运算&#xff0c;以减少模型大小、内存和存储需求&#xff0c;同时加快推理速度&#xff0c;降低计算功耗&#xff0c;使得模型在低算力设备上运行更加高效&#xff0c;特别适用于嵌入式设备或移动端场景。 不同数据类型&#xff08;…

【MongoDB】MongoDB的集群,部署架构,OptLog,集群优化等详解

文章目录 一、引入复制集的原因二、复制集成员&#xff08;一&#xff09;基本成员&#xff08;二&#xff09;主节点&#xff08;Primary&#xff09;细化成员 三、复制集常见部署架构&#xff08;一&#xff09;基础三节点&#xff08;二&#xff09;跨数据中心 四、复制集保…

Javaweb梳理17——HTMLCSS简介

Javaweb梳理17——HTML&CSS简介 17 HTML&CSS简介17.1 HTML介绍17.2 快速入门17.3 基础标签17.3 .1 标题标签17.3.2 hr标签17.3.3 字体标签17.3.4 换行17.3.8 案例17.3.9 图片、音频、视频标签17.3.10 超链接标签17.3.11 列表标签17.3.12 表格标签17.3.11 布局标签17.3.…

远程管理不再难!树莓派5安装Raspberry Pi OS并实现使用VNC异地连接

前言&#xff1a;大家好&#xff01;今天我要教你们如何在树莓派5上安装Raspberry Pi OS&#xff0c;并配置SSH和VNC权限。通过这些步骤&#xff0c;你将能够在Windows电脑上使用VNC Viewer&#xff0c;结合Cpolar内网穿透工具&#xff0c;实现长期的公网远程访问管理本地树莓派…

力扣 LeetCode 94. 二叉树的中序遍历(Day6:二叉树)

解题思路&#xff1a; 方法一&#xff1a;递归&#xff08;左中右&#xff09; class Solution {List<Integer> res new ArrayList<>();public List<Integer> inorderTraversal(TreeNode root) {recur(root);return res;}public void recur(TreeNode root…

MySQL查询执行(七):临时表

临时表重名 思考&#xff1a;临时表和内存表的区别? 内存表&#xff0c; 指的是使用Memory引擎的表&#xff0c; 建表语法是create table …enginememory。 这种表的数据都保存在内存里&#xff0c; 系统重启的时候会被清空&#xff0c; 但是表结构还在。 除了这两个特性看上…

自己动手写Qt Creator插件

文章目录 前言一、环境准备1.先看自己的Qt Creator IDE的版本2.下载源码 二、使用步骤1.参考原本的插件2.编写自定义插件1.cmakelist增加一个模块2.同理&#xff0c;qbs文件也增加一个3.插件源码 三、效果总结 前言 就目前而言&#xff0c;Qt Creator这个IDE&#xff0c;插件比…

【星海随笔】ZooKeeper-Mesos

开源的由 Twitter 与 伯克利分校的 Mesos 项目组共同研发设计。 两极调度架构 支持高可用集群&#xff0c;通过ZooKeeper进行选举。 Mesos master 管理着所有的 Mesos slave 守护进程 每个slave运行具体的任务或者服务。 Franework 包括的调度器和执行机两部分 执行器运行在Me…