mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-12 20:26:35 +08:00
整理一下项目文件
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace AIStudio.Wpf.DiagramDesigner
|
||||
{
|
||||
public static class SelectionProps
|
||||
{
|
||||
#region EnabledForSelection
|
||||
|
||||
public static readonly DependencyProperty EnabledForSelectionProperty =
|
||||
DependencyProperty.RegisterAttached("EnabledForSelection", typeof(bool), typeof(SelectionProps),
|
||||
new FrameworkPropertyMetadata((bool)false,
|
||||
new PropertyChangedCallback(OnEnabledForSelectionChanged)));
|
||||
|
||||
public static bool GetEnabledForSelection(DependencyObject d)
|
||||
{
|
||||
return (bool)d.GetValue(EnabledForSelectionProperty);
|
||||
}
|
||||
|
||||
public static void SetEnabledForSelection(DependencyObject d, bool value)
|
||||
{
|
||||
d.SetValue(EnabledForSelectionProperty, value);
|
||||
}
|
||||
|
||||
private static void OnEnabledForSelectionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
FrameworkElement fe = (FrameworkElement)d;
|
||||
if ((bool)e.NewValue)
|
||||
{
|
||||
fe.PreviewMouseDown += Fe_PreviewMouseDown;
|
||||
}
|
||||
else
|
||||
{
|
||||
fe.PreviewMouseDown -= Fe_PreviewMouseDown;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
static void Fe_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
||||
{
|
||||
SelectableDesignerItemViewModelBase selectableDesignerItemViewModelBase =
|
||||
(SelectableDesignerItemViewModelBase)((FrameworkElement)sender).DataContext;
|
||||
|
||||
if(selectableDesignerItemViewModelBase != null && selectableDesignerItemViewModelBase.IsHitTestVisible)
|
||||
{
|
||||
if ((Keyboard.Modifiers & (ModifierKeys.Shift | ModifierKeys.Control)) != ModifierKeys.None)
|
||||
{
|
||||
if ((Keyboard.Modifiers & (ModifierKeys.Shift)) != ModifierKeys.None)
|
||||
{
|
||||
selectableDesignerItemViewModelBase.IsSelected = !selectableDesignerItemViewModelBase.IsSelected;
|
||||
}
|
||||
|
||||
if ((Keyboard.Modifiers & (ModifierKeys.Control)) != ModifierKeys.None)
|
||||
{
|
||||
selectableDesignerItemViewModelBase.IsSelected = !selectableDesignerItemViewModelBase.IsSelected;
|
||||
}
|
||||
}
|
||||
else if (!selectableDesignerItemViewModelBase.IsSelected)
|
||||
{
|
||||
foreach (SelectableDesignerItemViewModelBase item in selectableDesignerItemViewModelBase.Parent.SelectedItems)
|
||||
item.IsSelected = false;
|
||||
|
||||
selectableDesignerItemViewModelBase.Parent.SelectedItems.Clear();
|
||||
//selectableDesignerItemViewModelBase.IsSelected = true;
|
||||
selectableDesignerItemViewModelBase.Parent.SelectionService.AddToSelection(selectableDesignerItemViewModelBase);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user