清理无用代码
This commit is contained in:
67
ShrlAlgoToolkit.RevitAddins/CloseOnClickBehaviour.cs
Normal file
67
ShrlAlgoToolkit.RevitAddins/CloseOnClickBehaviour.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace ShrlAlgoToolkit.Mvvm.Behaviors;
|
||||
|
||||
/// <summary>
|
||||
/// 关闭窗口
|
||||
/// </summary>
|
||||
/// <example><Button Content = "Save" Command="{Binding SaveCommand}"></example>
|
||||
/// <i:Interaction.Triggers>
|
||||
/// <i:EventTrigger EventName = "Click" >
|
||||
/// < i:CallMethodAction MethodName = "CloseTrigger" TargetObject="{Binding RelativeSource={RelativeSource IsMultiSelect=FindAncestor, AncestorType=Windows}}" />
|
||||
/// </i:EventTrigger >
|
||||
/// </i:Interaction.Triggers >
|
||||
///</Button>
|
||||
|
||||
public class CloseOnClickBehaviour : Microsoft.Xaml.Behaviors.Behavior<FrameworkElement>
|
||||
{
|
||||
public static readonly DependencyProperty IsEnabledProperty = DependencyProperty.RegisterAttached(
|
||||
"IsEnabled",
|
||||
typeof(bool),
|
||||
typeof(CloseOnClickBehaviour),
|
||||
new PropertyMetadata(false, OnIsEnabledChanged)
|
||||
);
|
||||
|
||||
public static bool GetIsEnabled(DependencyObject obj)
|
||||
{
|
||||
return (bool)obj.GetValue(IsEnabledProperty);
|
||||
}
|
||||
|
||||
public static void SetIsEnabled(DependencyObject obj, bool value)
|
||||
{
|
||||
obj.SetValue(IsEnabledProperty, value);
|
||||
}
|
||||
|
||||
private static void OnIsEnabledChanged(DependencyObject dpo, DependencyPropertyChangedEventArgs args)
|
||||
{
|
||||
if (dpo is not Button button)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var oldValue = (bool)args.OldValue;
|
||||
var newValue = (bool)args.NewValue;
|
||||
|
||||
if (!oldValue && newValue)
|
||||
{
|
||||
button.Click += OnClick;
|
||||
}
|
||||
else if (oldValue && !newValue)
|
||||
{
|
||||
button.PreviewMouseLeftButtonDown -= OnClick;
|
||||
}
|
||||
}
|
||||
|
||||
private static void OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (sender is not Button button)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var win = Window.GetWindow(button);
|
||||
|
||||
win?.Close();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user