一个好看精致,不限制个人或商业使用的WPF控件库。
本库是一个正在开发的项目,如果遇到问题或有更好的建议,请发送邮件至bonjour@panuon.com,或在我的知乎账户上私信我(@末城via)。
你可以在任何地方使用该库,包括移植到你自己的项目中。
1.添加对Panuon.UI.dll的引用
2.在你的项目中添加fontawesome.ttf字体文件,并在App.xaml中添加以下资源字典。
<ResourceDictionary Source="pack://application:,,,/Panuon.UI;component/Themes/Control.xaml" />
3.在需要使用PanuonUI的xaml文件中添加引用
xmlns:pu="clr-namespace:Panuon.UI;assembly=Panuon.UI"
基础控件
Window / MessageBox 窗体
Button / RepeatButton 按钮
TextBox 输入框
PasswordBox 密码框
ComboBox / ComboBoxItem 下拉框
CheckBox 复选框
RadioButton 单选按钮
TreeView / TreeViewItem 树视图
ProgressBar 进度条
TabControl / TabItem 选项卡
ListBox / ListBoxItem 列表
Slider 滑块
特殊控件
ResizeGrid 可调大小容器
Loading 等待控件
SlideShow 轮播控件
ImageCuter 图片裁剪器
DatePicker 日期时间选择器
PagingNav 分页器
图表
LineCharts 折线图
PUWindow是一个继承自Window的控件,但尚不支持边角拖动缩放。
通过设置IsCoverMaskShow和IsAwaitShow属性,可以快速打开一个遮罩层,或同时打开遮罩层和等待控件。
图中演示了使用Gradual动画效果打开PUMessageBox,该控件是一个继承自PUWindow的窗体,可以提供一段消息显示,或一个询问对话框。
依赖属性 | 类型 | 含义 |
---|---|---|
Header | Object | 通常情况下,Title属性会同时设置窗体的左上角标题和任务栏标题。如果你期望使用不同的值,可以单独设置Header属性来改变左上角的标题内容。如果设置为Null,左上角标题将默认使用Title属性的内容。默认值为Null。 |
Icon | Object | 显示在左上角标题之前的图标。默认值为Null。 |
AnimationStyle | AnimationStyles枚举 | 启动/关闭时使用的动画样式。默认值为Scale(其余可选项为Gradual、Fade)。 |
AnimateIn | Boolean | 打开窗体时是否使用动画。默认值为True。 |
AnimateOut | Boolean | 关闭窗体时是否使用动画。默认值为True。 |
NavButtonVisibilty | Visibility | 设置控制条右侧三个按钮的显示状态。默认值为Visible。 |
IsCoverMaskShow | Boolean | 是否显示窗体的遮罩层。默认值为False。 |
IsAwaitShow | Boolean | 是否打开窗体的遮罩层,并显示等待控件。默认值为False。 |
AllowShowDelay | Boolean | 是否允许在启动时延迟显示窗体内容。在页面较为复杂时,将此属性设置为True有助于减少启动动画卡顿。 |
NavbarBackground | Brush | 控制栏的背景色。默认值为White(白色)。 |
NavbarHeight | Double | 控制栏的高度。默认值为30。 |
NavButtonHeight | Double | 控制栏按钮的高度。默认值为30。 |
NavButtonWidth | Double | 控制栏按钮的宽度。默认值为40。 |
BorderCornerRadius | CornerRadius | 窗体圆角大小。默认值为0。 |
注意:上一个版本的CloseWindow()方法将不再使用,直接使用Close()方法即可触发关闭动画(若AnimateOut为True)。
扩展:PUMessageBox
该控件继承自PUWindow,因而可以使用上面任意一个属性来配置它。
你可以在项目的任意地方调用PUMessageBox,它将自动打开父窗体的遮罩层。
//像下面这样调用,来显示一段提示
PUMessageBox.ShowDialog("操作成功。");
//或显示一个询问对话框
PUMessageBox.ShowConfirm("确定吗?");
PUButton是一个继承自Button的控件,目前共有四种样式。
PURepeatButton和PUButton的样式、属性、方法完全一致。
依赖属性 | 类型 | 含义 |
---|---|---|
ButtonStyle | ButtonStyles枚举 | 按钮的基本样式。默认值为General(其他可选项为Hollow、Outline、Link)。 |
ClickStyle | ClickStyles枚举 | 鼠标点击时按钮的效果。默认值为Classic(其他可选项为Sink)。 |
BorderCornerRadius | CornerRadius | 按钮圆角大小。默认值为0。 |
CoverBrush | AnimationStyles枚举 | 鼠标悬浮时遮罩层的背景颜色(Outline和Link样式下为前景色)。默认值为白色(在Outline和Link样式下为灰色) |
PUTextBox是一个继承自TextBox的控件,目前共有两种样式。
依赖属性 | 类型 | 含义 |
---|---|---|
TextBoxStyle | TextBoxStyles枚举 | 输入框的基本样式。默认值为General(其他可选项为IconGroup)。 |
Watermark | String | 水印。默认值为空。 |
Icon | Object | 放置在输入框前的图标,仅在IconGroup样式下有效。默认值为空。 |
IconWidth | Double | 图标的宽度。默认值为30。 |
ShadowColor | Color | 输入框获得焦点时阴影的颜色。默认值为#888888。 |
BorderCornerRadius | CornerRadius | 输入框圆角大小。默认值为0。 |
不要对Text属性进行赋值,可能会导致意外的错误。按原生PasswordBox的方式使用即可。
依赖属性 | 类型 | 含义 |
---|---|---|
PasswordBoxStyle | PasswordBoxStyles枚举 | 密码框的基本样式。默认值为General(其他可选项为IconGroup)。 |
Watermark | String | 水印。默认值为空。 |
Icon | Object | 放置在输入框前的图标,仅在IconGroup样式下有效。默认值为空。 |
IconWidth | Double | 图标的宽度,仅在IconGroup样式下有效。默认值为30。 |
ShadowColor | Color | 密码框获得焦点时阴影的颜色。默认值为#888888。 |
BorderCornerRadius | CornerRadius | 密码框圆角大小。默认值为0。 |
依赖属性 | 类型 | 含义 |
---|---|---|
ShadowColor | Color | 获下拉框激活时阴影的颜色。默认值为#88888。 |
CoverBrush | String | 鼠标悬浮在选择项时的背景颜色。默认值为#EEEEEE。 |
DeleteMode | DeleteModes枚举 | 当用户点击下拉框子项的删除按钮时,应该执行的操作。默认值为DeleteAndRouted(其他可选项为EventOnly)。 |
BindingItems | IList集合 | 绑定对象模板,通过该属性可以将内容绑定到Model类集合,而不是UI对象集合。默认值为空。 |
SelectedValuePath | SelectedValuePaths枚举 | 当子项目被选中时,SelectedValue应呈现子项PUComboBoxItem的哪一个值。默认值为Header(Value)。 |
SelectedValue | Object | 子项PUComboBoxItem的Header或Value属性(取决于SelectedValuePath的值),或通过设置该值来选中指定的子项目。默认值为空。 |
BorderCornerRadius | CornerRadius | 下拉框和输入框的圆角大小。默认值为0。 |
PUComboBox包含以下一个额外的路由事件。
路由事件 | 含义 |
---|---|
DeleteItem | 当用户点击子项PUComboBoxItem的删除按钮时,触发此路由事件。 |
依赖属性 | 类型 | 含义 |
---|---|---|
DeleteButtonVisibility | Visibility | 下拉选择项后侧删除按钮的显示状态。默认值为Collpased。 |
Value | Object | 下拉选择项可以携带的值,仅用于标记该子项的实际内容,不会对前端显示造成影响。默认值为Null。 |
PUComboBoxItem包含以下一个额外的类。
类 | 含义 |
---|---|
PUComboBoxItemModel | 用于绑定到PUComboBox子项集合的模型类,参见PUComboBox的BindingItems属性。 |
(文档更新中)