Releases: Panuon/Panuon.WPF.UI
1.1.15
改动
TabControlHelper 标签页 的 HeaderPanelHorizontalAlignment
属性重命名为 HeaderPanelAlignment
属性。
修复
修复了 Switch 在 Padding
不为 0
时出现圆钮位置错误的问题。
新功能
当 TabControlHelper 标签页 的子项超过长度或高度时,将在左右两侧显示翻页按钮。按钮的样式可以通过 HeaderPanelScrollButtonStyle
属性调整。要禁用翻页按钮,可以将 CanHeaderPanelScroll
属性设为 False
。
1.1.14
修复
修复了上个版本中已知的问题。
强签名
自该版本开始,Panuon.WPF.UI
启用了强签名。现在,你可以在强签名的项目上使用 Panuon.WPF.UI
了,没有启用强签名的项目不会受到影响。注意,代码签名仅用于确认发布者以及方便开发者在强签名项目上使用控件库, Panuon.WPF.UI
的开源协议和使用协议不会受到任何影响。
1.1.13.2
1.1.12
1.1.11.10
修复
修复了在多个控件中 pu:IconHelper.Foreground
属性失效的问题。
1.1.11.9
修复
修复了在部分语言(如奥地利语)的开发环境中,由于编译时小数点被替换为逗号而导致的Geometry转换异常问题。
修复了 GroupBox 组容器 中的 HeaderHeight
没有生效的问题。
新增
在 MultiComboBox 中新增了 UncheckedIconTemplate
属性。
1.1.11.8
优化
提高了部分控件的性能。由于修改了许多控件的模板,如果遇到问题,请及时在issue中留言。
在后续的版本中,控件性能还会持续进行优化。以下是一些测试用例(以第一次触发LayoutUpdated事件的时间为准):
测试用例 | 上个版本(平均值) | 新版本(平均值) |
---|---|---|
Samples/ReportView | 110ms | 87ms |
Samples/NeteaseMusicView | 130ms | 113ms |
Samples/SignInView | 45ms | 34ms |
Samples/FormView | 85ms | 71ms |
Samples/VisualStudio2019View | 55ms | 47ms |
创建100个按钮 | 260ms | 160ms |
改动
当 Button 按钮 、 RepeatButton 重复按钮 、 ToggleButton 选择按钮 的 IsPending
属性为 True
,且 Icon
属性不为 Null
时, 旋转中的 Spin 旋转 控件将取代 Icon
图标的位置。并且, Spin 控件的位置会根据 IconPlacement
属性而发生改变。这意味着, Spin 控件将不再与 Icon
图标共同出现。
为了统一现有的表单元素样式, ComboBox 、MultiComboBox 、 ColorPicker 、 DateTimePicker 等控件的 Padding
等布局属性可能发生了改变。在发布新版本之前,请检查你的样式效果是否与预期一致。
MultiComboBox 多选下拉框 现在不再使用 CheckBox 复选框 作为选中的标识了。同 Menu 菜单 和 ContextMenu 右键菜单 一样,该控件现在使用支持自定义的 CheckedIconTemplate
。如果该属性不为 Null
,子项选中时 CheckedIconTemplate
中的内容将会替代子项 Icon
的位置。以下是该属性的默认值:
<DataTemplate>
<TextBlock Text=""
VerticalAlignment="Center"
HorizontalAlignment="Center"
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType=ContentControl}, Mode=OneWay}"
FontSize="{Binding Path=(local:IconHelper.FontSize), RelativeSource={RelativeSource AncestorType=local:MultiComboBoxItem}, Mode=OneWay}"
FontFamily="/Panuon.WPF.UI;component/Resources/Fonts/#PanuonIcon" />
</DataTemplate>
修复
修复了 WindowX 窗体
在最大化时超出屏幕边界的问题。
1.1.11-beta
优化
提高了部分控件的性能。由于修改了许多控件的模板,如果遇到问题,请及时在issue中留言。
在后续的版本中,控件性能还会持续进行优化。以下是一些测试用例(以第一次触发LayoutUpdated事件的时间为准):
测试用例 | 上个版本(平均值) | 新版本(平均值) |
---|---|---|
Samples/ReportView | 110ms | 87ms |
Samples/NeteaseMusicView | 130ms | 113ms |
Samples/SignInView | 45ms | 34ms |
Samples/FormView | 85ms | 71ms |
Samples/VisualStudio2019View | 55ms | 47ms |
创建100个按钮 | 260ms | 160ms |
改动
当 Button 按钮 、 RepeatButton 重复按钮 、 ToggleButton 选择按钮 的 IsPending
属性为 True
,且 Icon
属性不为 Null
时, 旋转中的 Spin 旋转 控件将取代 Icon
图标的位置。并且, Spin 控件的位置会根据 IconPlacement
属性而发生改变。这意味着, Spin 控件将不再与 Icon
图标共同出现。
为了统一现有的表单元素样式, ComboBox 、MultiComboBox 、 ColorPicker 、 DateTimePicker 等控件的 Padding
等布局属性可能发生了改变。在发布新版本之前,请检查你的样式效果是否与预期一致。
MultiComboBox 多选下拉框 现在不再使用 CheckBox 复选框 作为选中的标识了。同 Menu 菜单 和 ContextMenu 右键菜单 一样,该控件现在使用支持自定义的 CheckedIconTemplate
。如果该属性不为 Null
,子项选中时 CheckedIconTemplate
中的内容将会替代子项 Icon
的位置。以下是该属性的默认值:
<DataTemplate>
<TextBlock Text=""
VerticalAlignment="Center"
HorizontalAlignment="Center"
Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType=ContentControl}, Mode=OneWay}"
FontSize="{Binding Path=(local:IconHelper.FontSize), RelativeSource={RelativeSource AncestorType=local:MultiComboBoxItem}, Mode=OneWay}"
FontFamily="/Panuon.WPF.UI;component/Resources/Fonts/#PanuonIcon" />
</DataTemplate>
1.1.10
⚠️ 改动
由于Visual Studio的智能感知无法识别同名的依赖属性和常规属性,从而经常导致大片的错误提示,因此Panuon.WPF.UI在所有的资源键末尾都加上了Key尾缀。例如,当你修改了 WindowX 窗体X 的 CloseButtonStyle
属性,并继承了Panuon.WPF.UI的自带样式时,你的代码需要从:
BasedOn="{StaticResource {x:Static pu:WindowXCaption.CloseButtonStyle}}"
更改为:
BasedOn="{StaticResource {x:Static pu:WindowXCaption.CloseButtonStyleKey}}"
🌟 新功能
-
Panuon.WPF.UI组件库提供了新的统一网址命名空间
https://opensource.panuon.com/wpf-ui
。现在,你可以使用xmlns:pu="https://opensource.panuon.com/wpf-ui"
命名空间来取代现有的命名空间:
xmlns:pu="clr-namespace:Panuon.WPF.UI;assembly=Panuon.WPF.UI"
xmlns:purs="clr-namespace:Panuon.WPF.UI.Resources;assembly=Panuon.WPF.UI"
xmlns:puconfig="clr-namespace:Panuon.WPF.UI.Configurations;assembly=Panuon.WPF.UI"
。 -
Panuon.WPF.UI在 Button 按钮 控件上首次尝试了类似于Web端的
Class
写法。如果你对前端开发足够了解,现在你可以使用ClassName
属性来精简你的代码。请注意,这是尚在测试中的功能,当前仅有 ButtonHelper 按钮 中带有ClassName
属性。如果出现任何问题,请在issue中留言。
你可以将以下代码:
<Button Content="Button" Width="250" Height="35" pu:ButtonHelper.Icon="" pu:ButtonHelper.IconPlacement="Right"
pu:ButtonHelper.HoverBackground="#440000FF" Foreground="White" Padding="0">
<Button.Background>
<LinearGradientBrush>
<GradientStop Color="#0692F0" Offset="0" />
<GradientStop Color="#0692F0" Offset="0.2" />
<GradientStop Color="#37F8E0" Offset="1" />
</LinearGradientBrush>
</Button.Background>
</Button>
精简为:
<Button Content="Button"
pu:ButtonHelper.ClassName="w-250 h-35 i-e900,right
bg-#0692F0,0~#0692F0,0.2~#37F8E0,1 bg-hover-#440000FF fg-white padding-0,0,0,0" />
在实际的测试中,使用这种方式创建100个按钮控件大约需要额外消耗5ms的时间。
下个版本中的新功能
Panuon.WPF.UI找到了一个优化前端代码的可行性方法,预计能带来33%左右的初始化效率提升。
新增
新增了 CalendarX 日历 、 TimeSelector 时间选择器 、 DateTimePicker 日期时间选择器 中的部分样式属性。
新增了 CalendarX 日历 中的 IsTodayHighlight
属性,这个属性可以高亮当天的日期。要调整高亮的效果,你可以通过 ItemsSpecialDayHighlightTemplate
属性来实现。以下是 ItemsSpecialDayHighlightTemplate
属性的默认值:
<DataTemplate>
<Ellipse Width="4"
Height="4"
HorizontalAlignment="Right"
VerticalAlignment="Top"
Margin="3"
Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType=pu:CalendarX}, Mode=OneWay}" />
</DataTemplate>
1.1.9.4
修复
修复了 ScrollViewer 滚动视图 在部分控件内滚动时一次会滚动一整页的问题。
修复了 DateTimePicker 中 选中日期时不会自动关闭的问题。
新增
新增了 GlobalSettings 全局配置 中的 Themes
属性,这个属性可以用于切换WPF程序的主题资源字典。你可以参考Samples中的代码来使用它(右上角新增了夜间模式按钮)。