Skip to content

Releases: Panuon/Panuon.WPF.UI

1.1.15

12 Jul 08:07
Compare
Choose a tag to compare

改动

TabControlHelper 标签页HeaderPanelHorizontalAlignment 属性重命名为 HeaderPanelAlignment 属性。

修复

修复了 SwitchPadding 不为 0 时出现圆钮位置错误的问题。

新功能

TabControlHelper 标签页 的子项超过长度或高度时,将在左右两侧显示翻页按钮。按钮的样式可以通过 HeaderPanelScrollButtonStyle 属性调整。要禁用翻页按钮,可以将 CanHeaderPanelScroll 属性设为 False

1.1.14

03 Jul 01:38
Compare
Choose a tag to compare

修复

修复了上个版本中已知的问题。

强签名

自该版本开始,Panuon.WPF.UI 启用了强签名。现在,你可以在强签名的项目上使用 Panuon.WPF.UI 了,没有启用强签名的项目不会受到影响。注意,代码签名仅用于确认发布者以及方便开发者在强签名项目上使用控件库, Panuon.WPF.UI 的开源协议和使用协议不会受到任何影响。

1.1.13.2

26 Jun 08:27
Compare
Choose a tag to compare

修复

修复了多个控件在使用 ShadowColor 时出现文字模糊的异常。
修复了多个派生自 ItemsControl 控件的子项中 IconHelper 图标辅助类 未生效的问题。

新增

新增了 Timeline 时间轴 类,它可以用来展示进度,也可以通过控制 IsCompleted 属性来作为步骤条使用。关于它的使用方法,你可以参考这篇wiki文档

1.1.12

17 Jun 12:14
Compare
Choose a tag to compare

新增

新增了 Toast 消息提示 类,它使你能在 WindowX 窗体X 的指定位置上显示一段类似于Android中 Toast 的消息文本。它的配置方法与 MessageBoxXPendingBox 等控件相同,都使用了通过 Setting 来设置的方法。你可以在 Samples 项目中查看使用方法,或者参考这篇wiki文档
WindowX 窗体X 中也同样新增了 Toast 方法,你可以在窗体的 .xaml.cs 中调用这个方法,它的参数与 Toast.Show() 基本一致。

1.1.11.10

30 May 03:00
Compare
Choose a tag to compare

修复

修复了在多个控件中 pu:IconHelper.Foreground 属性失效的问题。

1.1.11.9

27 May 21:55
Compare
Choose a tag to compare

修复

修复了在部分语言(如奥地利语)的开发环境中,由于编译时小数点被替换为逗号而导致的Geometry转换异常问题。
修复了 GroupBox 组容器 中的 HeaderHeight 没有生效的问题。

新增

MultiComboBox 中新增了 UncheckedIconTemplate 属性。

1.1.11.8

25 May 12:28
Compare
Choose a tag to compare

优化

提高了部分控件的性能。由于修改了许多控件的模板,如果遇到问题,请及时在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 图标共同出现。
为了统一现有的表单元素样式, ComboBoxMultiComboBoxColorPickerDateTimePicker 等控件的 Padding 等布局属性可能发生了改变。在发布新版本之前,请检查你的样式效果是否与预期一致。
MultiComboBox 多选下拉框 现在不再使用 CheckBox 复选框 作为选中的标识了。同 Menu 菜单ContextMenu 右键菜单 一样,该控件现在使用支持自定义的 CheckedIconTemplate 。如果该属性不为 Null ,子项选中时 CheckedIconTemplate 中的内容将会替代子项 Icon 的位置。以下是该属性的默认值:

<DataTemplate>
    <TextBlock Text="&#xe92e;"
               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

15 May 07:50
9df7494
Compare
Choose a tag to compare
1.1.11-beta Pre-release
Pre-release

优化

提高了部分控件的性能。由于修改了许多控件的模板,如果遇到问题,请及时在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 图标共同出现。
为了统一现有的表单元素样式, ComboBoxMultiComboBoxColorPickerDateTimePicker 等控件的 Padding 等布局属性可能发生了改变。在发布新版本之前,请检查你的样式效果是否与预期一致。
MultiComboBox 多选下拉框 现在不再使用 CheckBox 复选框 作为选中的标识了。同 Menu 菜单ContextMenu 右键菜单 一样,该控件现在使用支持自定义的 CheckedIconTemplate 。如果该属性不为 Null ,子项选中时 CheckedIconTemplate 中的内容将会替代子项 Icon 的位置。以下是该属性的默认值:

<DataTemplate>
    <TextBlock Text="&#xe92e;"
               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

10 May 07:27
Compare
Choose a tag to compare

⚠️ 改动

由于Visual Studio的智能感知无法识别同名的依赖属性和常规属性,从而经常导致大片的错误提示,因此Panuon.WPF.UI在所有的资源键末尾都加上了Key尾缀。例如,当你修改了 WindowX 窗体XCloseButtonStyle 属性,并继承了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="&#xe900;" 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

30 Apr 04:57
Compare
Choose a tag to compare

修复

修复了 ScrollViewer 滚动视图 在部分控件内滚动时一次会滚动一整页的问题。
修复了 DateTimePicker 中 选中日期时不会自动关闭的问题。

新增

新增了 GlobalSettings 全局配置 中的 Themes 属性,这个属性可以用于切换WPF程序的主题资源字典。你可以参考Samples中的代码来使用它(右上角新增了夜间模式按钮)。