Update Dialog.cs

添加弹出对话框对所有带有装饰层的元素的支持。
This commit is contained in:
潘文博 committed 2020-03-14 11:53:31 +08:00
1 parent 768c8e4f69
commit 0b031e8d0b
1 file changed
+7 -7
@@ -16,7 +16,7 @@ namespace HandyControl.Controls
private Adorner _container; private Adorner _container;
private static readonly Dictionary<string, System.Windows.Window> WindowDic = new Dictionary<string, System.Windows.Window>(); private static readonly Dictionary<string, System.Windows.FrameworkElement> WindowDic = new Dictionary<string, System.Windows.FrameworkElement>();
public static readonly DependencyProperty IsClosedProperty = DependencyProperty.Register( public static readonly DependencyProperty IsClosedProperty = DependencyProperty.Register(
"IsClosed", typeof(bool), typeof(Dialog), new PropertyMetadata(ValueBoxes.FalseBox)); "IsClosed", typeof(bool), typeof(Dialog), new PropertyMetadata(ValueBoxes.FalseBox));
@@ -32,7 +32,7 @@ namespace HandyControl.Controls
private static void OnTokenChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 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) if (e.NewValue == null)
{ {
@@ -56,13 +56,13 @@ namespace HandyControl.Controls
CommandBindings.Add(new CommandBinding(ControlCommands.Close, (s, e) => Close())); 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; if (string.IsNullOrEmpty(token) || window == null) return;
WindowDic[token] = window; 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; 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; if (window == null) return;
var first = WindowDic.FirstOrDefault(item => ReferenceEquals(window, item.Value)); var first = WindowDic.FirstOrDefault(item => ReferenceEquals(window, item.Value));
@@ -105,7 +105,7 @@ namespace HandyControl.Controls
Content = content Content = content
}; };
System.Windows.Window window; System.Windows.FrameworkElement window;
if (string.IsNullOrEmpty(token)) 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) if (window != null)
{ {