├── Documents └── PanuonUI.Silver │ ├── en-us.md │ ├── release-note.zh-cn.md │ └── zh-cn.md └── Resources ├── Global ├── nuget.png ├── nuget_icon.png ├── panuon-long.png ├── panuon-new.png ├── panuon.new.png ├── panuon.png └── zhifubao.jpg ├── NeteaseMusic.png ├── Panuon.UI.Silver ├── Snapshots │ ├── button-hollow-hover.png │ ├── button-hollow.png │ ├── button-link-hover.png │ ├── button-link.png │ ├── button-outline-hover.png │ ├── button-outline.png │ ├── button-standard-hover.png │ ├── button-standard.png │ ├── checkbox-button-checked.png │ ├── checkbox-button.png │ ├── checkbox-standard-checked.png │ ├── checkbox-standard.png │ ├── checkbox-switch-checked.png │ ├── checkbox-switch.png │ ├── checkbox-switch2-checked.png │ ├── checkbox-switch2.png │ ├── combobox-expanded.png │ ├── combobox.png │ ├── contextmenu.png │ ├── datagrid.png │ ├── loading-classic.png │ ├── loading-ring.png │ ├── loading-ring2.png │ ├── loading-standard.png │ ├── loading-wave.png │ ├── menu.png │ ├── passwordbox-hover.png │ ├── passwordbox.png │ ├── progressbar-ring.png │ ├── progressbar-standard.png │ ├── progressbar.png │ ├── radiobutton-button-checked.png │ ├── radiobutton-button.png │ ├── radiobutton-standard-checked.png │ ├── radiobutton-standard.png │ ├── radiobutton-switch-checked.png │ ├── radiobutton-switch.png │ ├── radiobutton-switch2-checked.png │ ├── radiobutton-switch2.png │ ├── slider-classic.png │ ├── slider-standard.png │ ├── tabcontrol-card.png │ ├── tabcontrol-classic.png │ ├── tabcontrol-standard.png │ ├── textbox-hover.png │ ├── textbox.png │ ├── treeview-chain.png │ ├── treeview-classic.png │ ├── treeview-modern.png │ └── treeview-standard.png ├── button.jpg ├── case_collector_1.png ├── case_morin_2.png ├── case_morin_3.png ├── case_morin_4.png ├── checkbox.jpg ├── comboEx.png ├── comboExample.jpg ├── radiobutton.jpg ├── step1.png ├── temp.jpg ├── textbox.jpg ├── window_1.png └── window_2.png ├── Report.png ├── SignIn.png └── VisualStudio2019.png /Documents/PanuonUI.Silver/en-us.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mochengvia/Panuon.Documents/6d92f9ac1271e00fd4ff18b07ded2eb672cd2626/Documents/PanuonUI.Silver/en-us.md -------------------------------------------------------------------------------- /Documents/PanuonUI.Silver/release-note.zh-cn.md: -------------------------------------------------------------------------------- 1 | # Release Note 2 | 3 | ## 2019-11-14 v1.0.9.3 / v1.0.9.4 4 | [重要]Button / RepeatButton 的重大优化: 5 | 解决了无法使用AccessKey的问题;解决了除Standard外的样式无法使用UI控件作为Content的问题;优化了悬浮效果,不会再与Foreground和BorderBrush重叠显示。 6 | 删除了ClickCoverBrush属性,新增了ClickCoverOpacity属性,默认值为0.8。 7 | 8 | [重要]关于TreeView的问题修复: 9 | 目前Standard样式下,子项选中的前景色是与SelectedBackground属性关联的。新版本中,已调整为SelectedForeground属性。为所有的TreeView样式应用了SelectedForeground效果。 10 | 11 | ## 2019-11-13 v1.0.9.1 / v1.0.9.2 12 | 出于命名空间的重叠原因,TextBlock控件已重命名为PUTextBlock。 13 | 14 | ## 2019-11-12 v1.0.9 15 | 修复ColorPicker点击控件外区域时不能自动关闭的问题,新增了HeaderWidth属性。 16 | 修复ColorSelector的SelectedBrush赋值为null时崩溃的问题。 17 | 修复了LayoutHelper的RowDefinition无效的问题。 18 | 修复了WaterfallPanel中的控件设置高度无效的问题。 19 | 为Slider控件新增了Header和HeaderWidth属性。 20 | 新增了CheckBox和RadioButton的Selector样式。 21 | 新增了TextBlock控件。MatchText和MatchedForeground属性可以用来高亮指定的文字,AutoAdaptation和ExceededTextFiller属性可以将超出显示边界的文本显示为省略号或其他文字。详见文档: 22 | https://github.com/Panuon/Panuon.Documents/blob/master/Documents/PanuonUI.Silver/zh-cn.md#textblock-%E6%96%87%E6%9C%AC%E6%8E%A7%E4%BB%B6 23 | 新增了AnimateWrapPanel控件,该控件继承自WrapPanel。当其Children发生变化时,将产生一个重新排列的动画效果。详见文档: 24 | https://github.com/Panuon/Panuon.Documents/blob/master/Documents/PanuonUI.Silver/zh-cn.md#animatewrappanel-%E5%8A%A8%E7%94%BB%E6%8D%A2%E8%A1%8C%E9%9D%A2%E6%9D%BF 25 | Timeline控件重做,新增TimelineItem控件。该控件默认启用虚拟化。文档: 26 | https://github.com/Panuon/Panuon.Documents/blob/master/Documents/PanuonUI.Silver/zh-cn.md#timeline-%E6%97%B6%E9%97%B4%E8%BD%B4 27 | 移除了TagPanel控件,新增了TagControl和TagItem控件。该控件不支持虚拟化。文档: 28 | https://github.com/Panuon/Panuon.Documents/blob/master/Documents/PanuonUI.Silver/zh-cn.md#tagcontrol-%E6%A0%87%E7%AD%BE%E6%9D%BF 29 | 30 | ## 2019-11-6 v1.0.8.8 31 | 修复ComboBox的IsEditable属性设置为True时,Padding属性未对输入框生效的问题。 32 | 修复ComboBox的BindToEnum属性在某些特定条件下可能报空指针异常,以及在使用BindToEnum属性时SelectedValue属性初始值无效的问题。 33 | 新增了DataGridHelper中的SelectedItems属性。请注意,对该属性赋值是无效的。 34 | 35 | ## 2019-11-1 v1.0.8.7 36 | [严重]修复DataGrid在选中时前景色变灰的问题。 37 | 38 | ## 2019-10-31 v1.0.8.6 39 | 修复WindowXCaption的Foreground属性未对标题和Header生效的问题。 40 | 修复IconHelper.Width对除了Standard外的Button样式无效的问题。 41 | [重要]将CheckBox和RadioButton的CornerRadius属性由double类型调整为CornerRadius类型。 42 | 修复ComboBox的SelectedForeground可能会显示异常的问题。 43 | 移除了DataGridHelper多余的RowHeaderBrush属性。您可通过DataGrid的RowHeaderTemplate属性自由设置Header样式。同时,修复了DataGrid的Header没有显示的问题。 44 | 修复了TabControlHelper.HeaderPanelBackground在TabStripPlacement不为Top时不生效的问题。 45 | 46 | ## 2019-10-25 v1.0.8.5 47 | 修复了Calendar和DateTimePicker在选择月份时,若已选中了该月不存在的天数将引发崩溃的问题,以及无法处理SelectedDateTimeChanged事件的问题。新增了DateTimePicker的Header和HeaderWidth属性。 48 | 修复了IconHelper.Width对TextBox不生效的问题。 49 | TabControl增强: 50 | 新增ItemCornerRadius属性,用于设置选项卡子项的统一圆角大小。该属性也可直接对TabItem控件生效。 51 | 新增ItemBackground属性,用于设置选项卡子项的统一背景色。 52 | 新增HeaderPanelBackground属性,用于设置选项卡标题栏的背景色。 53 | 54 | Expander增强: 55 | 移除了HeaderHeight属性,新增HeaderPadding(默认值5,5,0,5)、HeaderBackground、ShadowColor(默认值为Null)属性。 56 | 调整默认Padding属性值为10,5。 57 | 58 | GroupBox增强: 59 | 移除了Effect属性,新增Icon、HeaderPadding(默认值5,5,0,5)、HeaderBackground、ShadowColor(默认值为Null)属性。 60 | 调整默认Padding属性值为10,5。 61 | 62 | ## 2019-10-21 v1.0.8.4 63 | 修复了ScrollViewer.CanContentScroll在多个控件中不生效的问题。 64 | 移除了GroupBox默认内部间距为0,3,0,3的设置。 65 | [严重]修复了ListBox样式没有应用到项目的问题。 66 | 67 | ## 2019-10-16 v1.0.8.2/3 68 | 删除了MultiSelector控件。新增了MultiComboBox、MultiComboBoxItem控件。 69 | 有关该控件的用法,请参考 https://github.com/Panuon/Panuon.Documents/blob/master/Documents/PanuonUI.Silver/zh-cn.md#multicombobox-%E4%B8%8B%E6%8B%89%E5%A4%9A%E9%80%89%E6%A1%86 70 | 开放了ComboBoxHelper中的SearchText属性。 71 | 新增了ColumnBindingAttribute,可使用此标记设置DataGrid自动生成列时的数据绑定方式。默认值调整为TwoWay、PropertyChanged。 72 | 73 | ## 2019-10-15 v1.0.8.1 74 | 修复了TabControl在部分属性状态下显示异常的问题。 75 | 新增了DisableScrollButton属性,通过该属性可以禁止两侧出现滚动按钮。 76 | 移除了大多数控件中默认文字为微软雅黑UI的做法(便于Nuget用户更改字体)。 77 | 78 | ## 2019-10-9 v1.0.7-rc 79 | 为了规范性和日后的发展,该版本改动较多,在更新之前请做好旧版本备份。 80 | 81 | 新增了IconHelper辅助类,该类可以调整Button、TextBox、PasswordBox、ComboBox等带有Icon、ItemIcon属性的控件的图标字体、颜色、宽度及大小。 82 | ScrollViewerHelper中的ScrollBarCornerRadius和ScrollBarThickness属性现在可以对ListBox、TreeView等控件生效了。 83 | 解除了所有控件中FocusVisualStyle为None的限制。 84 | 将所有的ShadowColor属性由Color改为Color?类型。当其值为Null时,阴影效果将被禁用。 85 | 优化了ColorPicker和ColorSelector的样式和效果。 86 | 优化了DataGrid的验证错误样式,以及在SelectionUnit为Cell时的表现效果。 87 | 新增了WaterfallPanel控件。 88 | 新增了Menu样式,详见示例。 89 | 90 | WindowX : 91 | 新增了DisableForceClosing属性。新增了ForceClose方法。 92 | 93 | WindowXCaption : 94 | 新增了Padding属性。 95 | 96 | ComboBox : 97 | 新增了SearchTextBoxWatermark属性。 98 | 将SearchTextChanged事件的参数由RoutedPropertyChangedEventArgs变更为SearchTextChangedEventArgs,该类型位于Panuon.UI.Silver.Core命名空间中。 99 | 100 | Loading : 101 | 移除了Stroke和StrokeCover属性。在Standard、Wave、Classic样式中,Loading控件的颜色受Foreground属性影响。在Ring、Ring2样式中,Loading控件的颜色受Background、Foreground属性的影响。 102 | 103 | TextBox : 104 | 新增了IsClearButtonVisible属性。 105 | 106 | PasswordBox : 107 | 新增了IsShowPwdButtonVisible属性。 108 | 109 | TreeView : 110 | 新增了ItemPadding属性。 111 | TreeViewItem的统一Padding值不再取自TreeView的Padding属性,而是由ItemPadding属性接管。 112 | 113 | TabControl : 114 | 移除了不起作用的DisableSideButton属性,新增了ItemIcon、ItemPadding属性。 115 | TabItem的统一Padding值不再取自TabControl的Padding属性,而是由ItemPadding属性接管。 116 | 将Removed事件的参数由RoutedPropertyChangedEventArgs>变更为TabItemRemovedEventArgs,该类型位于Panuon.UI.Silver.Core命名空间中。 117 | 118 | ContextMenu : 119 | 移除了ItemIcon、ItemIconWidth属性。新增了CheckableCheckboxStyle属性。 120 | 121 | DateTimePicker : 122 | 将SelectedDateTimeChanged事件的参数由RoutedPropertyChangedEventArgs变更为SelectedDateTimeChangedEventArgs,该类型位于Panuon.UI.Silver.Core命名空间中。 123 | 124 | WaterfallPanel & WaterfallViewer : 125 | 新增了ChildrenShape、ChildrenShapeSizeDelta属性。 126 | 通过ChildrenShape属性可以将Children中的元素设置成正方形。使用此属性后,可以使用ChildrenShapeSizeDelta属性对正方形元素的长/宽中的一个值(取决于Orienzation)进行增减。 127 | 128 | ## 2019-9-10 v1.0.6 129 | 130 | 1. 针对ComboBox的改动(`非常重要`): 131 | 将HoverBrush重命名为HoverBackground 132 | 将SelectedBrush重命名为SelectedBackground 133 | 新增了HoverForeground属性。 134 | 新增了SelectedForeground属性。 135 | 136 | 2. 针对ContextMenu的改动(`非常重要`): 137 | 将HoverBrush重命名为HoverBackground 138 | 将SelectedBrush重命名为SelectedBackground 139 | 新增了HoverForeground属性。 140 | 新增了SelectedForeground属性。 141 | 新增了ItemIconWidth属性,使用此属性可以调整ItemIcon的宽度。 142 | 新增了ItemPadding属性,使用此属性可以统一设置Items的Padding。 143 | 144 | 3. 针对ListBox的改动(`非常重要`): 145 | 将HoverBrush重命名为HoverBackground 146 | 将SelectedBrush重命名为SelectedBackground 147 | 新增了HoverForeground属性。 148 | 新增了SelectedForeground属性。 149 | 150 | 4. 针对DropDown的改动: 151 | 新增了IsAngleVisible属性,将此属性设置为False可隐藏顶部的尖角。 152 | 新增了StaysOpen属性,将此属性设置为True可阻止DropDown自动关闭。 153 | 154 | 155 | ## 2019-9-6 v1.0.5-rc 156 | 1. 针对DataGrid的改动(`非常重要`): 157 | 移除了 'DataGridColumn' 特性。 158 | 新增 'IgnoreColumn', 'ColumnWidth', 'ReadOnlyColumn' 特性。 159 | 这些特性位于Panuon.UI.Silver.Core命名空间中。使用方式如下: 160 | ``` 161 | [DisplayName("名称")] 162 | [ColumnWidth("2*")] 163 | [ReadOnlyColumn()] 164 | public string Name { get;set; } 165 | 166 | [IgnoreColumn()] 167 | public object CustomData { get;set; } 168 | ``` 169 | 新增了MouseEventHelper辅助类。 170 | 171 | -------------------------------------------------------------------------------- /Documents/PanuonUI.Silver/zh-cn.md: -------------------------------------------------------------------------------- 1 | # PanuonUI.Silver中文手册 2 | 3 | # 目录 4 | 5 | -- [欢迎使用](#欢迎使用) 6 | 7 | - [使用指引](#使用指引) 8 | - [STEP 1. 将PanuonUI.Silver引入到你的项目中](#step-1-将panuonuisilver引入到你的项目中) 9 | - [STEP 2. 添加资源字典](#step-2-添加资源字典) 10 | - [STEP 3. 在代码中使用PanuonUI.Silver](#step-3-在代码中使用panuonuisilver) 11 | - [FontAwesome字体](#fontawesome字体) 12 | - [控件库](#控件库) 13 | - [WindowX 窗体X](#windowx-窗体x) 14 | - [Button 按钮 / RepeatButton 重复按钮](#button-按钮--repeatbutton-重复按钮) 15 | - [PUTextBlock 文本控件](#putextblock-文本控件) 16 | - [TextBox 文本输入框](#textbox-文本输入框) 17 | - [PasswordBox 密码输入框](#passwordbox-密码输入框) 18 | - [CheckBox 多选框](#checkbox-多选框) 19 | - [RadioButton 单选按钮](#radiobutton-单选按钮) 20 | - [ComboBox 下拉单选框](#combobox-下拉单选框) 21 | - [MultiComboBox 下拉多选框](#multicombobox-下拉多选框) 22 | - [ProgressBar 进度条](#progressbar-进度条) 23 | - [TabControl 选项卡](#tabcontrol-选项卡) 24 | - [TreeView 树视图](#treeview-树视图) 25 | - [ScrollViewer 滚动视图](#scrollviewer-滚动视图) 26 | - [Slider 滑块](#slider-滑块) 27 | - [DataGrid 数据表](#datagrid-数据表) 28 | - [Loading 等待](#loading-等待) 29 | - [Menu 菜单](#menu-菜单) 30 | - [ContextMenu 上下文菜单](#contextmenu-上下文菜单) 31 | - [Expander 折叠面板](#expander-折叠面板) 32 | - [GroupBox 组面板](#groupbox-组面板) 33 | - [AnimateWrapPanel 动画换行面板](#animatewrappanel-动画换行面板) 34 | - [Timeline / TimelineItem 时间轴](#timeline-时间轴) 35 | - [TagControl / TagItem 标签板](#tagcontrol-标签板) 36 | - [MessageBoxX 消息框](#messageboxx-消息框) 37 | - [PendingBox 等待框](#pendingbox-等待框) 38 | - [常见问题](#常见问题) 39 | *** 40 | ## 欢迎使用 41 | 42 | PanuonUI.Silver是一个可以高度自定义控件样式的Modern风格WPF控件库,其绝大多数控件都遵循了MVVM设计原则。PanuonUI.Silver的意义在于,你只需更改几个属性值,或调用一些方法,就可以轻松DIY出属于你自己风格的UI界面,而无需深入了解Style的写法,或是Trigger等属性的用法。 43 | PanuonUI.Silver不像DevExpress等控件库那样,通过简单的拖拖拽拽和点击,就能快速生成带有丰富色彩、统一风格的UI界面。虽然PanuonUI.Silver提供了一组默认的样式,但这些样式可能不能满足你的日常需求。UIBrowser中提供了“调色板”功能,你可以用它来快速设计、调整你的控件样式,并获取其代码。只需下载GitHub项目并用Visual Studio打开,你就能找到它。 44 | 要最大化利用PanuonUI.Silver控件库的优势,你需要具有一定的审美能力,或者拥有一张现成的设计图。 45 | 46 | ## 使用指引 47 | 48 | ### STEP 1. 将PanuonUI.Silver引入到你的项目中 49 | 1. 以Nuget形式 50 | 右击你的个人项目,选择“管理Nuget程序包”。在包管理器页面中,点击“浏览”选项,然后在搜索框中键入“Panuon.UI.Silver”。选择最顶端的正确项目,并在右侧详情页中点击“安装”,等待安装完成即可。 51 | 2. 以dll形式 52 | 在你项目的根文件夹内创建一个名为“References”(当然其他的名字也可以)的文件夹。下载GitHub上的Zip文件并解压后,将解压文件夹目录下“Output/NET40”(若你的项目使用.NET4.5及以上框架,则为“Output/NET45”)文件夹内的所有dll文件拷贝到刚刚创建的文件夹中。切换到Visual Studio,在你项目下的“引用”条目上右击,并选择“添加引用”。点击右下角的“浏览”按钮,并导航到刚刚创建的References文件夹内。全选刚刚复制的dll文件,并点击“添加”按钮,然后再点击“确定”。 53 | 3. 以项目形式 54 | 下载GitHub Zip文件并解压后,将解压文件夹目录下“Net40”(若你的项目使用.NET4.5及以上框架,则为“Net45”)文件夹内的“Panuon.UI.Silver”文件夹拷贝到你项目的根目录(或根目录内的子文件夹)中。切换到Visual Studio,右击你的解决方案,点击“添加” -> “现有项目”,定位到刚刚复制的Panuon.UI.Silver文件夹内,选择“Panuon.UI.Silver.csproj”,并点击“确定”按钮。 55 | 在你要使用PanuonUI.Silver的项目下的“引用”条目上右击,并选择“添加引用”。选择“项目”选项卡,勾选“Panuon.UI.Silver”项目,并点击“确定”。 56 | 若项目使用.NET4.0及以下版本,必须在用于启动的应用程序主项目中安装“Microsoft.Windows.Shell”的Nuget包,或是直接添加对Microsoft.Windows.Shell.dll的引用。 57 | 58 | ### STEP 2. 添加资源字典 59 | 打开你应用程序项目中的“App.xaml”,在<Application.Resources>节点内添加如下内容 60 | ``` 61 | 62 | 63 | 64 | 65 | 66 | ``` 67 | 这将使Panuon.UI.Silver样式应用到整个程序。若你只希望在特定页面或控件中使用Panuon.UI.Silver样式,请将上述资源字典放置在特定页面或控件的Resources节点内,而不是App.xaml中。 68 | 69 | 70 | ### STEP 3. 在代码中使用PanuonUI.Silver 71 | 要在页面或控件中使用Panuon.UI.Silver,首先要在目标页面中添加命名空间引用。 72 | 对于xaml代码,需要添加引用: 73 | ``` 74 | xmlns:pu="clr-namespace:Panuon.UI.Silver;assembly=Panuon.UI.Silver" 75 | ``` 76 | 以WindowX为例,添加pu命名空间引用后的WindowX如下: 77 | ``` 78 | 81 | 82 |