From c0b454dd30d65eec1a560ffe1272517f04d9ee3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=99=E4=BB=A3=E7=A0=81=E7=9A=84=E5=8E=A8=E5=AD=90?= <465351405@qq.com> Date: Fri, 10 Mar 2023 15:07:34 +0800 Subject: [PATCH] fixed listviewgridviewstyle --- .../Windows/Helpers/ResourceHelper.cs | 14 +++ .../Communal/Attached/DataGridViewAttached.cs | 44 --------- .../Controls/DialogBox/DialogExtensions.cs | 10 +- .../ItemsControl/ListViewAssistant.cs | 84 ++++++++++++++++- .../Controls/Thumb/GridViewColumThumb.cs | 4 +- CookPopularControl/CookPopularControl.xml | 53 ++++++----- .../Themes/BaseStyle/ListBoxBaseStyle.xaml | 2 +- CookPopularControl/Themes/ListViewStyle.xaml | 94 ++++++++++--------- 8 files changed, 184 insertions(+), 121 deletions(-) delete mode 100644 CookPopularControl/Communal/Attached/DataGridViewAttached.cs diff --git a/CookPopularCSharpToolkit/Windows/Helpers/ResourceHelper.cs b/CookPopularCSharpToolkit/Windows/Helpers/ResourceHelper.cs index 9e0a7f4..e85542b 100644 --- a/CookPopularCSharpToolkit/Windows/Helpers/ResourceHelper.cs +++ b/CookPopularCSharpToolkit/Windows/Helpers/ResourceHelper.cs @@ -25,5 +25,19 @@ public static TResource GetResource(string resourceKey) return default(TResource); } + + /// + /// 根据Key获取资源 + /// + /// + /// + /// + public static TResource GetResource(object resourceKey) + { + if (Application.Current.TryFindResource(resourceKey) is TResource resource) + return resource; + + return default(TResource); + } } } diff --git a/CookPopularControl/Communal/Attached/DataGridViewAttached.cs b/CookPopularControl/Communal/Attached/DataGridViewAttached.cs deleted file mode 100644 index cf3ce86..0000000 --- a/CookPopularControl/Communal/Attached/DataGridViewAttached.cs +++ /dev/null @@ -1,44 +0,0 @@ -using CookPopularCSharpToolkit.Communal; -using System.Windows; -using System.Windows.Controls; - - - -/* - * Copyright (c) 2021 All Rights Reserved. - * Description:DataGridViewAttached - * Author: Chance_写代码的厨子 - * Create Time:2021-03-30 11:21:15 - */ -namespace CookPopularControl.Communal -{ - /// - /// 提供的附加属性基类 - /// - public class DataGridViewAttached - { - public static double GetColumnMinWidth(DependencyObject obj) => (double)obj.GetValue(ColumnMinWidthProperty); - public static void SetColumnMinWidth(DependencyObject obj, double value) => obj.SetValue(ColumnMinWidthProperty, value); - /// - /// 标识列项最小宽度 - /// - public static readonly DependencyProperty ColumnMinWidthProperty = - DependencyProperty.RegisterAttached("ColumnMinWidth", typeof(double), typeof(DataGridViewAttached), new PropertyMetadata(ValueBoxes.Double30Box)); - - public static double GetColumnHeaderHeight(DependencyObject obj) => (double)obj.GetValue(ColumnHeaderHeightProperty); - public static void SetColumnHeaderHeight(DependencyObject obj, double value) => obj.SetValue(ColumnHeaderHeightProperty, value); - /// - /// 标识ColumnHeader的高度 - /// - public static readonly DependencyProperty ColumnHeaderHeightProperty = - DependencyProperty.RegisterAttached("ColumnHeaderHeight", typeof(double), typeof(DataGridViewAttached), new PropertyMetadata(ValueBoxes.Double20Box)); - - public static Thickness GetColumnHeaderPadding(DependencyObject obj) => (Thickness)obj.GetValue(ColumnHeaderPaddingProperty); - public static void SetColumnHeaderPadding(DependencyObject obj, Thickness value) => obj.SetValue(ColumnHeaderPaddingProperty, value); - /// - /// 标识ColumnHeader的内容的内边距 - /// - public static readonly DependencyProperty ColumnHeaderPaddingProperty = - DependencyProperty.RegisterAttached("ColumnHeaderPadding", typeof(Thickness), typeof(DataGridViewAttached), new PropertyMetadata(default(Thickness))); - } -} diff --git a/CookPopularControl/Controls/DialogBox/DialogExtensions.cs b/CookPopularControl/Controls/DialogBox/DialogExtensions.cs index 6b053fb..9812699 100644 --- a/CookPopularControl/Controls/DialogBox/DialogExtensions.cs +++ b/CookPopularControl/Controls/DialogBox/DialogExtensions.cs @@ -93,15 +93,7 @@ void SetResult() { try { - bool isExcute = false; - if (dialog is Windows.DialogWindow win && win.IsConfirm) - isExcute = true; - else if (dialog is DialogBox dialogBox) - isExcute = true; - else - isExcute = false; - - if (isExcute) + if ((dialog is Windows.DialogWindow win && win.IsConfirm) || dialog is DialogBox) tcs.TrySetResult(dialog.GetViewModel>().Result); } catch (Exception e) diff --git a/CookPopularControl/Controls/ItemsControl/ListViewAssistant.cs b/CookPopularControl/Controls/ItemsControl/ListViewAssistant.cs index 7b40f0e..d21ce20 100644 --- a/CookPopularControl/Controls/ItemsControl/ListViewAssistant.cs +++ b/CookPopularControl/Controls/ItemsControl/ListViewAssistant.cs @@ -1,5 +1,10 @@ -using System.Windows; +using CookPopularCSharpToolkit.Communal; +using CookPopularCSharpToolkit.Windows; +using System; +using System.Linq; +using System.Windows; using System.Windows.Controls; +using System.Xml.Linq; @@ -12,12 +17,87 @@ namespace CookPopularControl.Controls { /// - /// 的附加属性基类 + /// 表示的附加属性基类 + /// + public class GridViewColumnAssistant + { + public static GridLength GetColumnMinWidth(DependencyObject obj) => (GridLength)obj.GetValue(ColumnMinWidthProperty); + public static void SetColumnMinWidth(DependencyObject obj, GridLength value) => obj.SetValue(ColumnMinWidthProperty, value); + /// + /// 标识列项最小宽度 + /// + public static readonly DependencyProperty ColumnMinWidthProperty = + DependencyProperty.RegisterAttached("ColumnMinWidth", typeof(GridLength), typeof(GridViewColumnAssistant), new PropertyMetadata(GridLength.Auto, OnColumnMinWidthChanged)); + + private static void OnColumnMinWidthChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is GridViewColumn column) + { + var defaultGridViewColumnHeaderStyle = ResourceHelper.GetResource