一篇文章教你如何用界面组件DevExpress WPF为应用配置文件选择!

news2025/1/12 6:57:55

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。

DevExpress WPF的Theme Designer是一个独立的工具,允许开发人员根据内置的DevExpress WPF应用程序主题修改和创建新的主题,本文主要介绍WPF主题设计器的可视化元素。

许多DevExpress的忠实用户都在反馈想要一个这样的UI控件,可以解决一个简单的需求:选择一个文件或文件夹并将结果传递给编辑器。在本文中,我们将为大家介绍如何使用新的WPF BrowsePathEdit在DevExpress驱动的WPF应用程序中配置文件/文件夹选择。

DevExpress WPF v22.1正式版下载(q技术交流:600715373)

全新的WPF BrowsePathEdit组件是很有价值的,如果您需要执行以下操作:

  • 选择打开操作的文件/文件夹路径
  • 选择“另存为”操作的文件路径

这个新的UI控件包括以下功能:

  • 文件和文件夹的自定义图标支持(从文件系统加载)
  • 拖放 - 允许用户从文件系统中拖动文件并获取文件路径信息
  • 所选路径旁边显示的Clear按钮

用法示例

根据文件格式限制上传

本示例基于特定的文件格式限制文件上传(对于本示例,我们将文件上传操作限制为PDF文件),此示例还显示了一个自定义PDF图标,以指示文件格式限制。

实现

下面的代码向应用程序添加文件格式限制并更改图标。

为了复制这个实现,开发人员需要将IconSelector添加到Window Resources中,并为BrowsePathEdit.指定PathIconSelector 。

<dx:ThemedWindow.Resources>
<local:IconSelector x:key="iconSelector">
</local:IconSelector>
</dx:ThemedWindow.Resources>
<!---->
<dxe:BrowsePathEdit DialogType="FileOpen"
EditValue="{Binding SourceFilePath, UpdateSourceTrigger=PropertyChanged}"
DialogFilter="*.pdf|*.pdf"
PathIconSelector="{StaticResource iconSelector}">
</dxe:BrowsePathEdit>

在下面的代码中, IconSelector 类指定了自定义PDF图标的路径。

public class IconSelector : IPathIconSelector {
public ImageSource Select(string path) {
if(File.Exists(path))
return new BitmapImage(new Uri("pack://application:,,,/DevExpress.Images.v22.2;component/Images/Export/ExportToPDF_16x16.png"));
return null;
}
}

打开一个文件夹

BrowsePathEdit允许用户打开并选择一个工作文件夹,用户还可以直接将文件夹拖放到编辑器中。

实现

要打开/选择文件夹,开发人员需要使用BrowsePathEdit的BrowsePathEdit.DialogType属性,并将AllowDrop属性设置为true(并将ClearCommand添加到BrowsePathEdit控件)。

<dxe:BrowsePathEdit DialogType="Folder"
AllowDrop="True"
NullText="Drop a folder here">
<dxe:ButtonInfo GlyphKind="Cancel"
Command="{Binding (dxe:BaseEdit.OwnerEdit).SetNullValueCommand, RelativeSource={RelativeSource Self}}" />
</dxe:BrowsePathEdit>

要使用不同的图标(无论是否指定路径),向IconSelector类添加两个图标路径:

public class IconSelector : IPathIconSelector {
public ImageSource Select(string path) {
if(Directory.Exists(path))
return new BitmapImage(new Uri("pack://application:,,,/DevExpress.Images.v22.2;component/Images/Business Objects/BOFolder_16x16.png"));
return null;
}
}

选择文件路径

BrowsePathEdit控件的另一个特性是能够选择文件保存操作的路径(例如,如果用户生成了一个Excel文件并使用BrowsePathEdit控件将其保存在应用程序中)。

当我们使用BrowsePathEdit.DialogType属性的FileSave值时,对话框窗口允许我们保存文件,而不是打开它。

实现

在这个代码示例中,我们使用BrowsePathEdit.DialogType属性的FileSave值,并指定DialogFilter属性。

<dxe:BrowsePathEdit DialogType="FileSave"
DialogFilter="*.xlsx|*.xlsx"
EditValue="{Binding SourceFilePath, UpdateSourceTrigger=PropertyChanged}">
<dxe:ButtonInfo GlyphKind="Cancel"
Command="{Binding (dxe:BaseEdit.OwnerEdit).SetNullValueCommand, RelativeSource={RelativeSource Self}}" />
</dxe:BrowsePathEdit>

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

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

相关文章

【K3s】第8篇 详解 Kubernetes 组件

目录 1、Kubernetes 组件 2、控制平面组件&#xff08;Control Plane Components&#xff09; kube-apiserver etcd kube-scheduler kube-controller-manager cloud-controller-manager 3、Node 组件 kubelet kube-proxy 1、Kubernetes 组件 当你部署完 Kubernetes&am…

五、Java 12 新特性概述

五、Java 12 新特性概述 JDK12 在 2019 年 3 月 19 号正式发布&#xff0c;不同于JDK11&#xff0c;JDK12并不是一个LTS版本。作为一个中间版本&#xff0c;JDK12版本特性增加较少。 2017年宣布的加速发布节奏要求每六个月发布一次功能&#xff0c;每季度更新一次&#xff0c;每…

北鲲教程|基于 ABAQUS 的 CFRP 加固钢筋混凝土柱承载能力分析

随着我国经济实力快速发展与国家竞争力迅速提高&#xff0c;尤其是“一带一路”倡议与“海洋开发战略”实施&#xff0c;我国基础设施建设正逐步冲破东部地区的狭长地带&#xff0c;不断扩展至更加广阔的海洋与西部地区。混凝土结构作为土木工程中最常用的结构形式&#xff0c;…

女生戴蓝牙耳机什么颜色好看?适合女生的高颜值蓝牙耳机

蓝牙耳机作为当前畅销的数码单品&#xff0c;越来越多的品牌商推出新的蓝牙耳机&#xff0c;导致选购的时候不知道从何下手&#xff0c;蓝牙耳机最主要的是清晰音效&#xff0c;其次就是佩戴舒适度&#xff0c;但是近年来不少的人在外观上做出很大的改变&#xff0c;吸引人们的…

测试执行中工作效率相关指标

→ 执行效率&#xff1a;利用测试用例文档页数除于此次系统测试执行的时间总和(不包含用例文档编写时间)。补充指标方法是用例的个数除于此次系统测试的时间总和。用于获得工作中测试人员每小时执行测试的速度。 公式&#xff1a;∑测试用例文档页数(页) / ∑执行系统测试的有效…

Java多线程创建及典型实例(多线程买票)

Java多线程创建及典型实例&#xff08;多线程买票&#xff09;多线程1. Thread2. Runnable3. 线程通信4. Callable5. 线程池多线程卖票实例1. 继承Thread类&#xff08;存在线程安全问题&#xff09;2. 实现Runnable接口&#xff08;存在线程安全问题&#xff09;3. 对线程安全…

Mybatis源码(三)如何操作数据库

前言 接着environmentElement获取数据源信息后&#xff0c;同级执行代码的mappersElement。里面参杂了mybatis缓存。 Mybatis源码&#xff08;三&#xff09;如何操作数据库 MyBatis源码&#xff08;二&#xff09;如何执行sql Mybatis源码&#xff08;一&#xff09;获取数…

从咖啡馆到世界,共赴下一个十年 |写在 EMQX 开源十周年

十年前,在 2012 年 12 月 17 日,源于个人对 Erlang、MQTT 和开源的热爱,EMQX 诞生于一家咖啡馆并作为开源项目在 GitHub 上发布了初次提交。十年后的今天,EMQX 已成长为 Erlang 生态中最具影响力的物联网开源基础软件项目,作为全球最具扩展性的 MQTT 消息服务器在物联网、工业互…

【Java开发】Spring Cloud 02 :微服务项目介绍及开发环境

了解完 Spring Cloud 的发展背景以及各个组件库后&#xff0c;在敲代码前&#xff0c;本章节会聊一聊优惠券平台项目的整体功能和模块&#xff0c;以及每个功能点的技术选型和背后的依据&#xff0c;最后讲解下搭建项目所需的开发环境~ 目录 1 优惠券平台项目 1.1 项目介绍 …

[Linux安装软件详解系列]05 安装ElasticSearch和IK分词器

目录1、安装ElasticSearch2、安装IK分词器操作系统&#xff1a;Anolis OS 8.6 RHCK 64位、jdk1.8。ElasticSearch&#xff1a;v6.8.6下载文件&#xff1a; ElasticSearch v6.8.6&#xff1a; https://elastic.co/downloads/elasticsearch IK分词器 v6.8.6&#xff1a;https://g…

脚本-简单脚本

脚本执行顺序 默认脚本是无序执行&#xff0c;也就是哪个脚本先执行&#xff0c;哪个脚本后执行是未知的。 也可以手动指定执行顺序&#xff0c; 在如上图所示中&#xff0c;可以点击 加号 按钮&#xff0c;然后添加脚本的顺序&#xff0c;数值越大&#xff0c;执行顺序越靠后…

为什么团队执行力差,管理者应该如何解决?

没有执行力&#xff0c;一切都是空谈。团队执行力差可能是这些原因&#xff1a; 1、目标不明确&#xff0c;项目方向不清晰。 2、责任不清&#xff0c;不知道干啥&#xff0c;也不知道为什么而干。 3、技能不熟练&#xff0c;没有明确的完成标准。 4、分配任务&#xff0c;…

【JavaScript】飞机大战

文章目录一、效果演示设计思路二、鼠标版飞机大战代码展示1.HTML结构代码2.CSS样式代码3.JavaScript代码js.js文件plane.js文件三、键盘版飞机大战代码展示1.HTML结构代码2.CSS样式代码3.JavaScript代码四、代码资源分享一、效果演示 利用html&#xff0c;css&#xff0c;js制…

华为云服务器上部署war包(虚拟机也同样适用)

目录linux部署war包安装jdk关闭防火墙简单粗暴&#xff08;推荐虚拟机使用&#xff09;复杂但安全&#xff08;推荐服务器使用&#xff09;安装tomcat部署war包linux部署war包 安装jdk 执行命令查看可安装java版本 yum -y list java*执行命令安装jdk8 yum install -y java-…

12. 爬虫训练场项目,jinja2 模板继承,项目继续迭代

本篇博客我们将前端模板的通用部分进行抽离&#xff0c;便于整理管理&#xff0c;使用的是 jinja2 中模板继承相关技术。 文章目录Flask 模板引擎块&#xff08;Block&#xff09;更细的块拆解完善 general 目录和 school 目录 HTML 文件宏&#xff08;Macro&#xff09;Flask …

章节六:RASA NLU组件介绍--特征生成器

目录一、前言二、特征生成器MitieFeaturizerSpacyFeaturizerConveRTFeaturizerLanguageModelFeaturizerRegexFeaturizerCountVectorsFeaturizerLexicalSyntacticFeaturizer一、前言 RASA在处理对话时&#xff0c;整体流程是pipeline结构&#xff0c;自然语言理解&#xff08;N…

SpringBoot操作Redis

目录 1.IDE创建一个maven项目 2、 添加redis启动器 3.修改配置文件application.properties 4.在测试类中测试 SpringBoot操作Hash&#xff08;哈希&#xff09; SpringBoot操作List集合类型 SpringBoot操作Set集合类型 SpringBoot操作ZSet集合类型 1.IDE创建一个maven项…

dubbo(尚硅谷)学习笔记2

我们现在来做dubbo和springboot整合&#xff1a; 我们先来创建一个springboot项目&#xff1a; 然后把serviceimpl层拷贝过来。 因为我们这个也需要用到公用接口和实体类&#xff0c;所以还是需要导入一下这个依赖&#xff1a; 同样的我们也需要创建一个服务的消费者&#xf…

设计模式之美总结(行为型篇)

title: 设计模式之美总结&#xff08;行为型篇&#xff09; date: 2022-12-26 17:25:29 tags: 设计模式 categories:设计模式 cover: https://cover.png feature: false 文章目录1. 观察者/发布订阅模式&#xff08;Observer Design Pattern/Publish-Subscribe Design Pattern…

Unity2D像素游戏开发——Aseprite简单人物绘画+动画制作导出精灵表示例

目录 前言 什么是帧&#xff1f; 什么是Aseprite&#xff1f; 运行环境 正文 示例&#xff1a;绘制人物 制作多帧动画 微调 导出精灵表 总结 作品欣赏 附一个下载链接&#xff1a; 前言 什么是帧&#xff1f; 我们看到的动画都是由一张张图片连续播放而成的&#…