首页 > 其他分享 >一篇文章教你如何用界面组件DevExpress WPF为应用配置文件选择!

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

时间:2022-12-27 09:34:38浏览次数:60  
标签:控件 配置文件 BrowsePathEdit DevExpress 文件夹 文件 WPF

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

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

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

DevExpress WPF v22.1正式版下载

DevExpress技术交流群6:600715373      欢迎一起进群讨论

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

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

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

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

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

界面控件DevExpress WPF中文指南 - 如何为WPF应用程序配置文件/文件夹选择?

实现

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

为了复制这个实现,开发人员需要将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允许用户打开并选择一个工作文件夹,用户还可以直接将文件夹拖放到编辑器中。

界面控件DevExpress WPF中文指南 - 如何为WPF应用程序配置文件/文件夹选择?

实现

要打开/选择文件夹,开发人员需要使用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控件将其保存在应用程序中)。

界面控件DevExpress WPF中文指南 - 如何为WPF应用程序配置文件/文件夹选择?

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

界面控件DevExpress WPF中文指南 - 如何为WPF应用程序配置文件/文件夹选择?

实现

在这个代码示例中,我们使用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>

更多DevExpress线上公开课、中文教程资讯请上中文网获取

标签:控件,配置文件,BrowsePathEdit,DevExpress,文件夹,文件,WPF
From: https://www.cnblogs.com/AABBbaby/p/17007348.html

相关文章

  • 在WPF/C#中使用分布类对VM进行拆分
    摘要C#的分部关键字(partial)能够拆分一个类、一个结构、一个接口或一个方法为两个或更多个的文件,分部的每个文件都可以包含自己的类型和方法,程序编译时会将同类的分部内容......
  • WPF自定义MessageBox消息弹窗
    摘要在实际项目开发过程中,为了使其界面风格统一,恰好第三方UI库不满足又或是系统自带的又太过于简陋,那就撸起袖子肝一个自定义的出来吧!示例代码Tips:因都是基础代码,没什么......
  • Prometheus prometheus.yml配置文件介绍 2
    下面是prometheus.yml的一个配置示例,非默认示例,自己加了canal和ebs-python-crawler二个job#myglobalconfigglobal:scrape_interval:15s#Setthescrapeinte......
  • android中配置文件property的用途以及使用
    1.首先在源代码根目录(src下)下创建一个名为netconfig.properties的文件(也可以在其他目录下)。2.打开netconfig.properties文件,在该文件中添加下列代码.Java代码:#该......
  • Vue之vue.config.js配置文件
    使用vueinspect>output.js可以查看到Vue脚手架的默认配置。使用vue.config.js可以对脚手架进行个性化定制,详情见:https://cli.vuejs.org/zh其中这个配置文件需要和pa......
  • WPF开发之Prism详解【内附源码】
    在实际应用开发中,随着项目业务逐渐复杂,耦合度会越来越高,维护成本也会直线上升,所以解耦也变得越来越重要。Prism框架为WPF开发中解耦提供了非常便捷的应用。今天主要以一个......
  • PORT模式已成功,请更新您的站点配置文件
    如何在FlashFXP中设置连接FTP服务器的模式为PORT呢? FlashFXP提供了两种连接FTP服务器的方式被动模式(PASV)、主动模式(PORT),而FlashFXP的默认设置为被动模式(PASV),更改FlashFXP将......
  • WPF自定义界面WindowChrome
    默认WPF的界面其实也还行,就是满足不了日渐增长的需求,界面还是需要有更高的自定义程度,包括标题栏也要能够塞下更多的操作控件。默认窗口介绍#新建WPF项目,给里面内容设置......
  • 在WPF中嵌入WebBrowser可视化页面
    无论是哪种C/S技术,涉及数据可视化就非常的累赘了,当然大神也一定有,只不过面向大多数人,还是通过网页来实现,有的时候不想把这两个功能分开,一般会是客户的原因,所以我们打......
  • 【.NET Core】基于.NET Framework的WPF项目升级到.NET 6
    官方文档:将WPF应用升级到.NET6-.NETCore|MicrosoftLearn.NET(Core)可谓是大势所趋,最近有一个项目计划将单机应用改成客户端-服务器模式,对比了ASP.NETCoreweb......