stackpanel

《学习笔记》Layui-WPF窗体美化

别等时光非礼了梦想. 提交于 2020-08-15 13:43:45
一睹为快: 1.创建自定义控件,并取名为LayuiWPFStyle 2.在当前目录中创建Fonts和WindowStyle文件加用来存放字体文件和自定义窗体,字体用 fontawesome 字体当然你们可以用自己的自己也行 3.创建自定义控件,并取名为LayWindow,记住是WPF的别点错了 4.双击LayWindow让当前类文件继承Window 5.由于我们窗体分为头部和内容,而头部分为窗体名称和窗体图标以及窗体按钮组成 6.此时我们需要对窗体进行重绘以及添加必要的附加属性,快捷键Propdp+双击Tab,MyProperty是扩展属性名称我们可以随便定义,例如我们需要定义窗体头部栏高度我们可以定义为HearderHieght,类型为Int,ownerclass替换为当前自定义窗体的名称:LayWindow, 如图二 7.进入Generic.xaml文件中,我们会发现当我们每创建一个自定义控件时系统会默认帮我创建一个简单的Style样式,但是此时的样式时不奏效的,他只是给我们个友好的提示。此时我们需要开始从写窗体样式了,我们可以将窗体分为两份,一份为头部一分为身体(也就是内容)我们可以使用RowDefinitions进行分行,头部高度设置为自适应类容高度如图Height="auto" 8.创建一个头部栏:并且此时可以开始用上我们的自定义属性HearderHieght

XAML(上)

只愿长相守 提交于 2020-08-12 15:37:24
理解XAML XAML(extensible application markup language)发音为“zammel”,是用于实例化.net对象的标记语言。 XAML扮演的角色 对于WPF应用XAML不是必须的,编程人员可以在后端直接编写代码构建界面 基于XAML可以单独实现在前台编写UI的功能,XAML的角色定位类似于html在Asp.net中一样可以定义各种标签,设置标签属性来改变样式 在Visual Studio中可以通过可视化界面进行XAML的界面调试 WPF中XAML是如何运作的 WPF应用在被编译时所有XAML被转换成BAML(binary application markup language)。例如在编译window.xaml是会在obj/Debug文件夹下产生window.baml的临时文件 编译器会为window创建部分类window.g.i.cs,也在obj/Debug文件夹下 最终这些部分类被打包进单个程序集(*.exe),Baml最后以独立资源嵌入到程序集 在窗口初始化调用被编译的部分类的InitializeComponent()方法加载XAML 使用代码加载未编译的XAML using System; using System.Collections.Generic; using System.IO; using System.Linq;

Winforms 2020界面开发新纪元——Gantt/布局和导航控件升级

半腔热情 提交于 2020-08-12 08:37:35
DevExpress WinForms Subscription拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任! DevExpress Winforms v20.1日前全新发布,新版本增强Gantt、布局和导航控件功能等,欢迎下载v20.1体验! DevExpress Winforms v20.1完整版下载 Gantt Control WinForms Gantt控件于2019年10月作为社区技术预览(CTP)首次引入,此更新标志着其正式发布。 任务依存关系:类型、滞后和性能改进 Gantt Control现在支持不同的依赖项类型:start-to-start、start-to-finish、finish-to-start、finish-to-finish,如果鼠标指针悬停在依赖关系箭头上方,则用户可以将依赖关系从一个后继者移至另一个后继者或删除该依赖关系。要创建新的依赖关系,请使用显示在任务边缘的指针。 要指定依赖性,请使用单独的数据源。数据源记录表示依赖性,记录应包含前任、后继和依赖类型,您还可以设置前任和后继之间的时间差。如果用户移动了前任

WPF

帅比萌擦擦* 提交于 2020-08-10 12:26:52
实现了一个简单的WPF应用程序UI框架 ,分享出来。界面效果图如下: 运行效果如下: 喜欢的可以下载源码参考: https://github.com/DuelWithSelf/WPFEffects 左侧分类导览按钮为自定义的CustomControl, 参照ListBox的模式。 为了偷懒,暂时未深度封装,先用StackPanel承载,先用上再说,效果还不错 < StackPanel x:Name ="SpNavItems" > < CustomFrms:ListMenuBox Text ="支持作者" IconData =" {StaticResource PathData.Heart} " Key ="AboutMe" /> < CustomFrms:ListMenuBox Text ="组件" IconData =" {StaticResource PathData.SettingsOutline} " > < CustomFrms:ListMenuItem Text ="PathIcon" Key ="PathData" /> </ CustomFrms:ListMenuBox > < CustomFrms:ListMenuBox Text ="效果" IconData =" {StaticResource PathData.Creation} " > <

wpf 控件 border

99封情书 提交于 2020-08-10 12:23:03
WPF 中不时所有控件都有Border边框属性,像容器就没有这个属性,那么如何给容器加边框呢,WPF中Border可以当做一个控件使用 如下文给StackPanel内加Border控件 <StackPanel Name= "panel" Grid.Column= "0" > <Border BorderBrush= "{DynamicResource {x:Static SystemColors.MenuBrushKey}}" BorderThickness= "1,1,1,1" /> </StackPanel> 其中BorderBrush是边框颜色,BorderThickness是边框粗细 来源: oschina 链接: https://my.oschina.net/u/560237/blog/4481482

WPF MVVM 模式下的弹窗

情到浓时终转凉″ 提交于 2020-07-29 05:41:39
WPF MVVM 模式下的 弹窗 独立观察员 2020 年 7 月 15 日 一、总体展示 首先看看 用户控件 在设计页面的大致效果: 中间部分自然就是确认弹框了,由标题、内容、确认按钮、取消按钮、倒计时、关闭按钮组成,指定了大小范围: 外层还有个 Grid,没有指定大小,所以使用时会铺满容器,再配上带透明度的背景色,可以当作蒙版,避免用户继续操作后面的界面,达到模态 弹窗 的效果: 确认弹框,手动关闭、点击取消按钮、超时关闭这三种情况下会输出相关信息(需传入记录信息的委托方法),点击确认按钮则可以继续执行业务方法。 还有一种是信息弹框,区别是不用于执行业务方法,也不输出信息 (操作结果),只是用于提示用户,且默认标题和默认超时时间不同(可修改): 二、用户控件前端 新建 WPF 用户控件后,贴入以下代码: < Grid Background ="#905F9EA0" > < Grid Background ="Gainsboro" MinWidth ="300" MinHeight ="200" MaxWidth ="400" MaxHeight ="300" > < Grid.RowDefinitions > < RowDefinition Height ="28" ></ RowDefinition > < RowDefinition Height ="28" ></

Winform开发中的困境及解决方案

故事扮演 提交于 2020-07-26 21:18:05
在我们开发各种应用的时候,都会碰到很多不同的问题,这些问题涉及架构、模块组合、界面处理、共同部分抽象等方面,我们这里以Winform开发为例,从系统模块化、界面组件选择、业务模块场景划分、界面基类和辅助类处理、代码生成工具辅助开发等方面介绍在实际项目开发过程中碰到的困境和相关的解决方案,以便分析其中是如何逐步提高效率和整体用户体验的。 1、系统模块化 软件和建筑工程很类似,都是需要构建一个庞大而功能完整的一个系统,而工程化也意味着需要多人协作,那么就需要把一个庞大的系统横向或者纵向划分为各个可以独立施工完成的模块,虽然各个模块之间有所衔接或者交互,但是基本上可以以模块化的方式来构建,这个也是工程化开发的精髓所在。 以一个软件管理系统为例,我们尽可能把精力焦点放在客户的业务需求上,而对于常规的如权限控制、字典管理等一些常用的内容,由于它们的处理逻辑在特定领域上基本上比较固定一些,可以尽可能独立并重复使用, 而有时候,以某个特定的业务来说,同时很多处理规则也是不变的,因此也可以以业务模块的方式来划分,从而类似通用模块的方式重复使用。 模块化类似小孩子搭积木的方式构建一个所要的形状,虽然软件和建筑在这方面肯定更加复杂化,但是模块化系统是大势所趋,也是简化开发、易于维护、提高系统健壮性的重要举措。 2、界面组件选择 在Winform内置的传统样式里面,虽然提供了很多很好的界面组件

Winform开发中的困境及解决方案

一世执手 提交于 2020-07-25 23:46:15
在我们开发各种应用的时候,都会碰到很多不同的问题,这些问题涉及架构、模块组合、界面处理、共同部分抽象等方面,我们这里以Winform开发为例,从系统模块化、界面组件选择、业务模块场景划分、界面基类和辅助类处理、代码生成工具辅助开发等方面介绍在实际项目开发过程中碰到的困境和相关的解决方案,以便分析其中是如何逐步提高效率和整体用户体验的。 1、系统模块化 软件和建筑工程很类似,都是需要构建一个庞大而功能完整的一个系统,而工程化也意味着需要多人协作,那么就需要把一个庞大的系统横向或者纵向划分为各个可以独立施工完成的模块,虽然各个模块之间有所衔接或者交互,但是基本上可以以模块化的方式来构建,这个也是工程化开发的精髓所在。 以一个软件管理系统为例,我们尽可能把精力焦点放在客户的业务需求上,而对于常规的如权限控制、字典管理等一些常用的内容,由于它们的处理逻辑在特定领域上基本上比较固定一些,可以尽可能独立并重复使用, 而有时候,以某个特定的业务来说,同时很多处理规则也是不变的,因此也可以以业务模块的方式来划分,从而类似通用模块的方式重复使用。 模块化类似小孩子搭积木的方式构建一个所要的形状,虽然软件和建筑在这方面肯定更加复杂化,但是模块化系统是大势所趋,也是简化开发、易于维护、提高系统健壮性的重要举措。 2、界面组件选择 在Winform内置的传统样式里面,虽然提供了很多很好的界面组件

WPF如何实现一个漂亮的页签导航UI

ぐ巨炮叔叔 提交于 2020-07-25 14:37:17
最近看到一个比较漂亮的UI主界面,该UI是用左边的页签进行导航,比较有特色,就想着尝试用WPF来实现一下。经过一番尝试,基本上将UI设计图的效果用WPF程序进行了实现。下面介绍一下主要的思路: 1 UI设计  该UI的PSD设计图效果如下:   UI结构分析:先可以把UI分成上下两个区域,上面是一个区域放置一些appName,用户信息和配置按钮等,下面的再分成竖向的页签导航区域和内容区。但从WPF程序实现上来说,可以有多种区域划分方法,每个人的划分方法不同。 2 UI切图   内容区域的图片不做切图,它会动态根据左边的导航菜单的配置动态进行加载内容。本文只实现主界面UI框架。在Photoshop中可以在图片所在图层进行重命名,例如A的图层有一个按钮图标,可以将其命名为A.png(注意之前需要勾选Photoshop的生成【图片资源】项目),那么就可以在PSD文件同级目录中生成一个同名的文件夹,里面就有A.png的图标了! 3 WPF UI布局实现   PSD设计的UI需要转换成WPF程序,必须要将其UI结构用WPF的布局进行重新梳理,我的布局划分(主要是Grid)代码如下所示: 1 < Window 2 xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x ="http:/

WrapPanel not wrapping when in a StackPanel with Horizontal orientation

浪子不回头ぞ 提交于 2020-07-05 05:55:07
问题 The labels in the example below (WPF/XAML) just parade off the screen, no wrapping occurs. Removing the orientation works, but doesn't provided the needed functionality/look & feel. Any ideas how to make the WrapPanel wrap to the current size of the StackPanel ? <Window Height="300" Width="600"> <StackPanel Orientation="Horizontal"> <WrapPanel> <Label Height="28" Name="label1" Width="120">First Name</Label> <Label Height="28" Name="label2" Width="120">John</Label> <Label Height="28" Name=