随笔分类 - WPF开发
主要介绍WPF开发中的问题
摘要:1、前言 Prism库提供了一个事件机制,使应用程序中松散耦合的组件之间能够进行通信。此机制基于事件聚合器服务,允许发布商和订阅者通过事件进行通信,并且仍然没有直接引用对方。提供多播发布/订阅功能。这意味着可以有多个发布商提出相同的事件,也可以有多个订阅者收听同一事件。考虑使用该事件在模块之间发布事
阅读全文
摘要:1、前言 模块化开发是程序开发的一种方式,他将程序分为一组松散耦合的功能单元(命名模块),可集成到更大的应用程序中。模块封装了应用程序整体功能的一部分,通常代表一组相关功能。它可以包括一系列相关组件,如应用程序功能(包括用户界面和业务逻辑)或应用程序基础架构(如用于记录或验证用户的应用程序级服务)。
阅读全文
摘要:一、事件 Prism提供了对要显示或编辑的视图中的数据进行处理以外,ViewModel 还可能定义用户可以执行的一个或多个操作。用户可以通过 UI 执行的操作通常被定义为Command。Command提供了一种方便的方式来表示操作,这些操作很容易与 UI 中的控件绑定。它们封装了实施操作或操作的实际
阅读全文
摘要:开始使用prism是很容易的。按照下面的步骤,你可以快速构件prisim程序。 一、安装依赖包 在Visual Studio创建全新的 WPF 应用程序,接下来是安装适当的依赖包,Unity 将是首选的容器。 安装容器完成后,即可进行程序的开发 二、覆盖现有应用对象 下一步是将新创建的 WPF 项目
阅读全文
摘要:前一个博客,介绍了依赖属性的基本定义,在定义的过程中register中的的两个参数,并没有传入参数,不知道其是用来干什么的,以下,我们将介绍这两个参数的真正用途FrameworkPropertyMetadata和ValidateValueCallback。 1、FrameworkPropertyMe
阅读全文
摘要:WPF中的触发器,是对WPF事件的一种封装,WPF中的触发器,有多种方式,总结起来可分为: 控件触发(FrameworkElement.Triggers集合) 样式触发(Styles.Triggers集合) 控件模板触发(ControlTemplate.Triggers集合) 数据模板触发(Data
阅读全文
摘要:动画是WPF的核心部分,随着对窗体程序体验的要求增加,动画表现越来越重要,WPF天生就是基于图形的,所以天生具有动画的基因,我们常说的动画,无非就三种方式实现: 逐帧动画是一种常见的动画形式(Frame By Frame),其原理是在"连续的关键帧"中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同
阅读全文
摘要:样式(Style)是组织和重用格式化选项的重要工具,样式是创建一系列封装所有细节的样式,然后在需要之处通过属性应用这些样式。样式只是应用与元素的属性值集合,WPF样式系统和HTML里面的CSS层叠样式表很相似。如你想让所有的控件显示相同的字体和字体大小,一些控件显示特定的样式等等。 行为(Behav
阅读全文
摘要:步骤1 下载库文件 加载指定的库,在项目上点击右键,打开管理NuGet程序包 输入Avalondock 安装 Xceed.Products.Wpf.Toolkit.AvalonDock和 Xceed.Products.Wpf.Toolkit.AvalonDock.Themes两个库一个是控件库,一个是皮肤库,缺少任何一个,都会造成程序无法编译。 步骤2 引入命名空间 在项目中,定义命...
阅读全文
摘要:前七节将Ribbon的功能大致介绍了一番,本节来介绍一些特殊控件的使用 DropDownButton控件 当前控件是显示下拉功能的基本组件,其配合Gallery能实现诸多特殊功能,代码如下所示 <Fluent:DropDownButton Header="Pink" Icon="Images\Pin
阅读全文
摘要:上一节,介绍了StartScreen的主要功能,本节介绍Ribbon的另外一个小功能StatusBar,状态栏是脱离ribbon之外单独存在,可以单独使用的控件 其基本代码定义如下: <Fluent:StatusBar HorizontalAlignment="Stretch" Grid.Row="
阅读全文
摘要:上一节,介绍了Toolbar的主要功能,说明了ToolBar的一些最基本用法,这一节,介绍Ribbon的一个重要功能startScreen, startScreen软件第一次启动,呈现的界面。 由于Ribbon适应多文档界面,构建何种文档,并不一定,所以需要一个启动选择界面,保证软件的正常运行。 其
阅读全文
摘要:上一节,介绍了快速启动栏的说明,接下来,介绍Ribbon另外一个功能,toolbar,toolbar是对工具栏的一个有效补充。 其基本代码定义如下: <Fluent:Ribbon.ToolBarItems> <Fluent:Button Size="Middle" Icon="Images/Help
阅读全文
摘要:上一节,完成了Ribbon菜单的介绍,这一节,我们将进行快速启动栏的介绍,快速启动栏是Ribbon中一个重要的功能,其像office中的头部区域。 其基本代码定义如下: <Fluent:Ribbon Grid.Row="0"> <Fluent:Ribbon.QuickAccessItems> <Fl
阅读全文
摘要:上一节,完成了Ribbon工具栏上部分控件的创建,本节主要介绍菜单控件的创建 。 Menu菜单,菜单有二种表现形式,下面分别介绍二种标识形式的样式: 1、ApplicationMenu 应用程序菜单,和我们传统的菜单形式比较相似,其主要是由众多MenuItem组成,其MenuItem之间可以层级嵌套
阅读全文
摘要:上一节,完成了Ribbon的创建,可以显示Ribbon的基本轮廓,下一步我们即将创建具体的工具区,这里我们主要说明几个关键的类 1、RibbonTabItem 标签页 创建标签页,标签页主要包含在Ribbon节点之下,其定义方式如下: <Fluent:Ribbon Grid.Row="0"> <Fl
阅读全文
摘要:第一步:引入Fluent Ribbon的库 第一种方法:直接到github上下载, 下载地址:https://github.com/fluentribbon/Fluent.Ribbon 第二种方法:在VS项目引用处,点击右键,弹出Nuget管理程序包,输入Fluent.Ribbon查询,安装对应的包文件 第二步:设置默认皮肤 打开App.xaml文件,...
阅读全文