From 0b031e8d0bc9a65af3e9248d2f34d3afef8dcfbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E6=96=87=E5=8D=9A?= <964012840@qq.com> Date: Sat, 14 Mar 2020 11:53:31 +0800 Subject: [PATCH 1/2] Update Dialog.cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加弹出对话框对所有带有装饰层的元素的支持。 --- .../Controls/Other/Dialog.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Shared/HandyControl_Shared/Controls/Other/Dialog.cs b/src/Shared/HandyControl_Shared/Controls/Other/Dialog.cs index 7f2fc50a..aab70313 100644 --- a/src/Shared/HandyControl_Shared/Controls/Other/Dialog.cs +++ b/src/Shared/HandyControl_Shared/Controls/Other/Dialog.cs @@ -16,14 +16,14 @@ namespace HandyControl.Controls private Adorner _container; - private static readonly Dictionary WindowDic = new Dictionary(); + private static readonly Dictionary WindowDic = new Dictionary(); public static readonly DependencyProperty IsClosedProperty = DependencyProperty.Register( "IsClosed", typeof(bool), typeof(Dialog), new PropertyMetadata(ValueBoxes.FalseBox)); public bool IsClosed { - get => (bool) GetValue(IsClosedProperty); + get => (bool)GetValue(IsClosedProperty); internal set => SetValue(IsClosedProperty, value); } @@ -32,7 +32,7 @@ namespace HandyControl.Controls private static void OnTokenChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { - if (d is System.Windows.Window window) + if (d is System.Windows.FrameworkElement window) { if (e.NewValue == null) { @@ -49,20 +49,20 @@ namespace HandyControl.Controls => element.SetValue(TokenProperty, value); public static string GetToken(DependencyObject element) - => (string) element.GetValue(TokenProperty); + => (string)element.GetValue(TokenProperty); public Dialog() { CommandBindings.Add(new CommandBinding(ControlCommands.Close, (s, e) => Close())); } - public static void Register(string token, System.Windows.Window window) + public static void Register(string token, System.Windows.FrameworkElement window) { if (string.IsNullOrEmpty(token) || window == null) return; WindowDic[token] = window; } - public static void Unregister(string token, System.Windows.Window window) + public static void Unregister(string token, System.Windows.FrameworkElement window) { if (string.IsNullOrEmpty(token) || window == null) return; @@ -75,7 +75,7 @@ namespace HandyControl.Controls } } - public static void Unregister(System.Windows.Window window) + public static void Unregister(System.Windows.FrameworkElement window) { if (window == null) return; var first = WindowDic.FirstOrDefault(item => ReferenceEquals(window, item.Value)); @@ -105,7 +105,7 @@ namespace HandyControl.Controls Content = content }; - System.Windows.Window window; + System.Windows.FrameworkElement window; if (string.IsNullOrEmpty(token)) { @@ -154,7 +154,7 @@ namespace HandyControl.Controls } } - private void Close(System.Windows.Window window) + private void Close(System.Windows.FrameworkElement window) { if (window != null) { From 95d847d72c89a3765334d3c3d2112903dd234bd2 Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Sun, 29 Mar 2020 23:58:32 +0800 Subject: [PATCH 2/2] merge #339 --- src/HandyControl.sln | 2 + .../Data/MessageToken.cs | 2 + .../Data/MessageToken.tt | 3 +- .../Properties/Langs/Lang.Designer.cs | 9 +++ .../Properties/Langs/Lang.en.resx | 3 + .../Properties/Langs/Lang.fa.resx | 3 + .../Properties/Langs/Lang.fr.resx | 3 + .../Properties/Langs/Lang.ko-KR.resx | 3 + .../Properties/Langs/Lang.resx | 3 + .../UserControl/Controls/DialogDemoCtl.xaml | 27 +++++---- .../ViewModel/Controls/DialogDemoViewModel.cs | 15 +++-- .../Controls/Other/Dialog.cs | 56 +++++++++---------- 12 files changed, 86 insertions(+), 43 deletions(-) diff --git a/src/HandyControl.sln b/src/HandyControl.sln index 1154962f..5040fb3e 100644 --- a/src/HandyControl.sln +++ b/src/HandyControl.sln @@ -34,7 +34,9 @@ Global Shared\HandyControl_Shared\HandyControl_Shared.projitems*{32204503-2ef0-4681-ae13-aa1feb6c658a}*SharedItemsImports = 4 Shared\HandyControlDemo_Shared\HandyControlDemo_Shared.projitems*{9a7b52e6-94bb-4e7e-bb6a-7cf6761b79a7}*SharedItemsImports = 4 Shared\HandyControl_Shared\HandyControl_Shared.projitems*{aac11083-faca-405d-9197-5c1212d65656}*SharedItemsImports = 13 + Shared\HandyControl_Shared\HandyControl_Shared.projitems*{be4a567d-b6e0-413e-8f64-e1a53b4f9366}*SharedItemsImports = 5 Shared\HandyControlDemo_Shared\HandyControlDemo_Shared.projitems*{c4694269-c9b8-45d5-87f8-d0088c532510}*SharedItemsImports = 13 + Shared\HandyControlDemo_Shared\HandyControlDemo_Shared.projitems*{d7107690-8592-4f9f-9379-9b82c1c15d2a}*SharedItemsImports = 5 Shared\HandyControlDemo_Shared\HandyControlDemo_Shared.projitems*{d8ae88f8-c36b-4d10-a7f9-22ffcfba5231}*SharedItemsImports = 4 Shared\HandyControl_Shared\HandyControl_Shared.projitems*{dc966e3d-bcff-4652-98cf-070e5494749a}*SharedItemsImports = 4 EndGlobalSection diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs index bcc0bcbd..456917df 100644 --- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs +++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs @@ -46,5 +46,7 @@ public static readonly string NavigationWindow = nameof(NavigationWindow); + public static readonly string DialogContainer = nameof(DialogContainer); + } } \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt index 76cbb2b3..9c53e44f 100644 --- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt +++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt @@ -25,7 +25,8 @@ var messageList = new List "QQGroupView", "GlowWindow", "NativeCommonWindow", - "NavigationWindow" + "NavigationWindow", + "DialogContainer" }; #> namespace HandyControlDemo.Data diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs index e3078682..5fcf9206 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs @@ -1725,6 +1725,15 @@ namespace HandyControlDemo.Properties.Langs { } } + /// + /// 查找类似 文本对话框(控件中) 的本地化字符串。 + /// + public static string TextDialogInControl { + get { + return ResourceManager.GetString("TextDialogInControl", resourceCulture); + } + } + /// /// 查找类似 文本对话框,带计时器 的本地化字符串。 /// diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx index 97bad55c..63f989ac 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx @@ -744,4 +744,7 @@ Screenshot + + TextDialog(In control) + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx index b1d3c4fe..e3bb5ced 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fa.resx @@ -744,4 +744,7 @@ Screenshot + + TextDialog(In control) + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx index 3c22a942..c24dda27 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.fr.resx @@ -744,4 +744,7 @@ Screenshot + + TextDialog(In control) + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx index 88562ce8..70c29806 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.ko-KR.resx @@ -744,4 +744,7 @@ Screenshot + + TextDialog(In control) + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx index f4e63998..736038d0 100644 --- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx +++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx @@ -744,4 +744,7 @@ 截图 + + 文本对话框(控件中) + \ No newline at end of file diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/DialogDemoCtl.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/DialogDemoCtl.xaml index c8973990..7a2522b9 100644 --- a/src/Shared/HandyControlDemo_Shared/UserControl/Controls/DialogDemoCtl.xaml +++ b/src/Shared/HandyControlDemo_Shared/UserControl/Controls/DialogDemoCtl.xaml @@ -3,16 +3,23 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:langs="clr-namespace:HandyControlDemo.Properties.Langs" xmlns:hc="https://handyorg.github.io/handycontrol" + xmlns:data="clr-namespace:HandyControlDemo.Data" + hc:Dialog.Token="{x:Static data:MessageToken.DialogContainer}" Background="{DynamicResource RegionBrush}" - MinWidth="300" + MinWidth="500" DataContext="{Binding DialogDemo,Source={StaticResource Locator}}"> - - -