From 12a01ac78e18ce5e157a91959daea96f8e4f3798 Mon Sep 17 00:00:00 2001
From: NaBian <836904362@qq.com>
Date: Thu, 10 Mar 2022 21:23:34 +0800
Subject: [PATCH] enhance: optimized CoverView
---
src/Net_40/HandyControl_Net_40/Themes/Theme.xaml | 6 ++----
.../Controls/Attach/DataGridAttach.cs | 2 +-
.../Controls/Attach/ScrollViewerAttach.cs | 2 +-
.../Controls/Cover/CoverView/CoverView.cs | 14 ++++++++++----
.../Controls/Cover/CoverView/CoverViewContent.cs | 2 +-
.../Themes/Styles/Base/CoverViewBaseStyle.xaml | 8 +++-----
src/Shared/HandyControl_Shared/Themes/Theme.xaml | 6 ++----
7 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/src/Net_40/HandyControl_Net_40/Themes/Theme.xaml b/src/Net_40/HandyControl_Net_40/Themes/Theme.xaml
index 6402103d..0df7730f 100644
--- a/src/Net_40/HandyControl_Net_40/Themes/Theme.xaml
+++ b/src/Net_40/HandyControl_Net_40/Themes/Theme.xaml
@@ -7860,7 +7860,7 @@
-
+
@@ -7892,9 +7892,7 @@
-
-
-
+
diff --git a/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs b/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs
index 64eb1888..301cc8e1 100644
--- a/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs
@@ -341,7 +341,7 @@ namespace HandyControl.Controls
"ShowSelectAllButton", typeof(bool), typeof(DataGridAttach), new PropertyMetadata(ValueBoxes.TrueBox));
public static void SetShowSelectAllButton(DependencyObject element, bool value)
- => element.SetValue(ShowSelectAllButtonProperty, value);
+ => element.SetValue(ShowSelectAllButtonProperty, ValueBoxes.BooleanBox(value));
public static bool GetShowSelectAllButton(DependencyObject element)
=> (bool) element.GetValue(ShowSelectAllButtonProperty);
diff --git a/src/Shared/HandyControl_Shared/Controls/Attach/ScrollViewerAttach.cs b/src/Shared/HandyControl_Shared/Controls/Attach/ScrollViewerAttach.cs
index f78e4545..67306295 100644
--- a/src/Shared/HandyControl_Shared/Controls/Attach/ScrollViewerAttach.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Attach/ScrollViewerAttach.cs
@@ -11,7 +11,7 @@ namespace HandyControl.Controls
"AutoHide", typeof(bool), typeof(ScrollViewerAttach), new FrameworkPropertyMetadata(ValueBoxes.TrueBox, FrameworkPropertyMetadataOptions.Inherits));
public static void SetAutoHide(DependencyObject element, bool value)
- => element.SetValue(AutoHideProperty, value);
+ => element.SetValue(AutoHideProperty, ValueBoxes.BooleanBox(value));
public static bool GetAutoHide(DependencyObject element)
=> (bool) element.GetValue(AutoHideProperty);
diff --git a/src/Shared/HandyControl_Shared/Controls/Cover/CoverView/CoverView.cs b/src/Shared/HandyControl_Shared/Controls/Cover/CoverView/CoverView.cs
index ada57091..6f255395 100644
--- a/src/Shared/HandyControl_Shared/Controls/Cover/CoverView/CoverView.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Cover/CoverView/CoverView.cs
@@ -35,7 +35,7 @@ namespace HandyControl.Controls
{
if (_selectedItem == null)
{
- item.IsSelected = true;
+ item.SetCurrentValue(SelectableItem.IsSelectedProperty, ValueBoxes.TrueBox);
_selectedItem = item;
if (_viewContent != null)
{
@@ -49,8 +49,8 @@ namespace HandyControl.Controls
if (!Equals(_selectedItem, item))
{
- _selectedItem.IsSelected = false;
- item.IsSelected = true;
+ _selectedItem.SetCurrentValue(SelectableItem.IsSelectedProperty, ValueBoxes.FalseBox);
+ item.SetCurrentValue(SelectableItem.IsSelectedProperty, ValueBoxes.TrueBox);
_selectedItem = item;
if (_viewContent != null)
{
@@ -67,7 +67,7 @@ namespace HandyControl.Controls
_viewContent.ContentTemplate = null;
UpdateCoverViewContent(false);
}
- _selectedItem.IsSelected = false;
+ _selectedItem.SetCurrentValue(SelectableItem.IsSelectedProperty, ValueBoxes.FalseBox);
_selectedItem = null;
}
}
@@ -218,6 +218,12 @@ namespace HandyControl.Controls
{
ItemsHost.Children.Remove(_viewContent);
}
+
+ if (_selectedItem == null)
+ {
+ return;
+ }
+
var total = _entryDic.Count + 1;
var totalRow = total / Groups + (total % Groups > 0 ? 1 : 0);
if (total <= Groups)
diff --git a/src/Shared/HandyControl_Shared/Controls/Cover/CoverView/CoverViewContent.cs b/src/Shared/HandyControl_Shared/Controls/Cover/CoverView/CoverViewContent.cs
index 689d9b00..626d682f 100644
--- a/src/Shared/HandyControl_Shared/Controls/Cover/CoverView/CoverViewContent.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Cover/CoverView/CoverViewContent.cs
@@ -9,7 +9,7 @@ namespace HandyControl.Controls
{
[TemplatePart(Name = ElementTriangle, Type = typeof(FrameworkElement))]
[TemplatePart(Name = ElementContent, Type = typeof(FrameworkElement))]
- internal class CoverViewContent : ContentControl
+ public class CoverViewContent : ContentControl
{
private const string ElementTriangle = "PART_Triangle";
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/Base/CoverViewBaseStyle.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/Base/CoverViewBaseStyle.xaml
index 5458edbf..442852af 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/Base/CoverViewBaseStyle.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/Base/CoverViewBaseStyle.xaml
@@ -29,7 +29,7 @@
-
+
@@ -62,13 +62,11 @@
-
-
-
+
-
\ No newline at end of file
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Theme.xaml b/src/Shared/HandyControl_Shared/Themes/Theme.xaml
index fe27287d..df5d3916 100644
--- a/src/Shared/HandyControl_Shared/Themes/Theme.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Theme.xaml
@@ -7978,7 +7978,7 @@
-
+
@@ -8010,9 +8010,7 @@
-
-
-
+