private void RegisterEvents() { //Task线程内未捕获异常处理事件 TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;//Task异常 //UI线程未捕获异常处理事件(UI主线程) DispatcherUnhandledException += App_DispatcherUnhandle
C#下使用WPF框架编程时,有时需要给DataGrid添加序号,实现方式一般两种,一种方式是通过 LoadingRow,自动在列前边增加一列序号,该列为自动添加,没有列名字。另一种是自定义一列显示序号。下边我们看看具体的实现方式。1、自动增加一列显示序号效果如图: 实现方式:给DataGrid添加Load
今天五月一号,大家玩的开心哦。 1. 介绍 今天介绍一个WPF开发的打印对话框开源项目-PrintDialogX,该开源项目由《WPF开源项目:AIStudio.Wpf.AClient》作者推荐。 欢迎使用 PrintDialogX, 这是一个开源项目。免费用于商业用途。 用于 C# 的自定义打印对话框,可实时预览。您可以选
由于工作中需要,第一次研究wpf,所以简单记录下 wpf:界面内容 <TreeView x:Name="TvDepartment" Background="Gray" DockPanel.Dock="Bottom" MouseDoubleClick="TvDepartment_MouseDoubleClick"></TreeView> wpf:绑定数据供
WPF依赖属性及路由事件 依赖属性 概念 依赖属性是标准.NET属性的全新实现。在WPF的核心特性(如动画、数据绑定以及样式)中需要嵌入依赖属性。简言之,依赖属性就是一种可以自己没有值,并能通过使用Binding从数据源获得值(依赖在别人身上)的属性。拥有依赖属性的对象成为“依赖对象”。 依
理解路由事件 事件路由允许源自某个元素的事件由另一个元素引发。 定义、注册和包装路由事件 public class MyWindow : Window { /// <summary> /// 定义和注册路由事件 /// </summary> public static readonly RoutedEvent MyRoutedEvent = EventManager.RegisterRoutedEvent
<Button x:Name="btnMin" Content="―" Style="{StaticResource MaterialDesignFlatMidBgButton}" /> <B
前段时间发现一个比较好看的WPF UI库,就是HandyControl,在git上和码云上都可下载。 HandyControl开源地址https://github.com/HandyOrg/HandyControl WPF控件库Handy Control v3.0.0 中文绿色免费版 https://www.jb51.net/softs/750812.html 1引入框架 点击工具=》Nuget包管理
ListBox的SelectedItems属性是只读属性,没法直接绑定。 一般的处理方式是在命令中通过命令参数传递到ViewModel里面。 现在通过附加属性来解决这个问题 效果 后台代码 1 using Microsoft.Toolkit.Mvvm.ComponentModel; 2 using Microsoft.Toolkit.Mvvm.Input; 3 usin
目录实现效果 实现效果 TreeView叶子节点绑定图片 https://blog.csdn.net/qihuiXY/article/details/108663406
【1】先完成基本的环境搭建,可参考C#-WPF-Prism.DryIoc-【1】环境搭建 - 轻吟浅唱,蓦然花开 - 博客园 (cnblogs.com) 【2】事件聚合器可用于跨ViewModel的消息传递,所以我们需要先定义一个消息实体Message.cs(根据自己的需要写)放到项目的Events文件夹下,并创建一个MessageEvent继承于泛
【1】先完成基本的环境搭建,可参考C#-WPF-Prism.DryIoc-【1】环境搭建 - 轻吟浅唱,蓦然花开 - 博客园 (cnblogs.com) 【2】在解决方案中建立三个项目如下图 其中Module1和Module2是分离出来的两个模块输出类型为dll,模块1中的Module1View和模块2中的Module2View是需要被主项目调
我们在用到ItemsControl时,有时会用到分组,如ListBox,ListView,DataGrid。WPF的ItemsControl可以实现分组,是依托于GroupStyle,以ListBox为例,他的分组效果图为: 以下为前台: 1 <ListBox Name="lbMain"> 2 <ListBox.ItemTemplate> 3 <DataTemplate> 4
1.新建WPF项目,然后引用Microsoft.VisualBasic 2.删除原生的App.xaml,建立WpfApp类,并使该类继承自Application,在该类中实现WPF MainWindow 窗体的创建工作 public class WpfApp:System.Windows.Application { private Action<string> SetTime; private T
路由事件的宿主是那些有 UI 显示功能的界面元素,而附加事件是那些没有 UI 显示功能的元素,其本质还是路由事件,只是路由事件的宿主不一样。附加事件只是路由事件的一种用法而已。 XAML: <Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006
摘要 在做WPF过程中,编写前端UI时,如果还没有对接数据来源,可能无法很直观的看见页面呈现效果,设计窗口也无法呈现直观的设计效果,又或者在绑定时VS无法给予属性提示等,那么设计时绑定就可以比较友好的解决这一点。 设计时绑定与运行时(普通)绑定区别 类别 运行时(普通)绑定 设计时绑
右键项目,发布的时候,需要选择独立,否则依赖库的话,有可能客户端没有.net core或.net framework,那么就会报错,提醒对方下载
Prism的ViewModelLoctor对象个性化匹配、IOC、事件聚合器 更改命名约定 设计思路: 利用视图的类型全名称,将其中Views替换成ViewModels 检查类型是不是以View结尾 最终返回一个ViewModel的类型 新建文件夹/窗口【ViewTest/MainWindow.xaml】,代码如下: <Window x:Class="WpfA
xaml: <Window x:Class="WPF入门.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com
Winform有这个控件,WPF却没有,自己做一个吧。。 先看看效果 控件代码 1 [TemplatePart(Name = "Part_UpRepeatButton", Type = typeof(RepeatButton))] 2 [TemplatePart(Name = "Part_DownRepeatButton", Type = typeof(RepeatButton))] 3 [TemplatePart(Name = &
本人研究OFD多年,采用C#和QT开发了一系列ofd相关软件。在这些产品中,阅读器始终占据着非常重要的位置。可以说,阅读器是直接面向最终客户的产品、是集OFD各类知识之大成的产品。市面上的阅读器产品林林总总,总感觉差强人意。本人决定全新开发一款OFD阅读器。新款阅读器要达到如下
如果要实现命令的可用性,命令不能这么写,这样会造成命令一直无法执行。。。。 必须这么写 ,把命令声明属性,在构造函数中初始化命令,这样才能激活命令的CanExecute
LeftClick 1 单击鼠标左键。 LeftDoubleClick 5 双击鼠标左键。 MiddleClick 3 单击鼠标中键。 MiddleDoubleClick 7 双击鼠标中键。 None 0 不执行任何操作。 RightClick 2 单击鼠标右键。 RightDoubleClick 6 双击鼠标右键。 WheelClick 4
<dxg:TableView.RowStyle> <Style TargetType="dxg:GridRowContent" BasedOn="{StaticResource {dxgt:GridRowThemeKey ResourceKey=RowStyle}}"> <Setter Property="Background" Value="{Binding Row.USER_
前言 天下代码一大抄 优化前 当通条目控件(itemControl)派生出多个名称是按序列排序,当需要对多个控件设置属性时,最初我的方式是: // IO全选 private void IOButton_Click(object sender, RoutedEventArgs e) { IO_1.IsChecked = true;