Beispiel #1
0
        private void ESC_Execute(object sender, ExecutedRoutedEventArgs e)
        {
            // Component Box
            if (IsComponentBoxOpen)
            {
                CloseComponentBox();
                return;
            }

            // Selected Group
            if (GroupSelector.GetSelectedItemCount() > 1)
            {
                GroupSelector.UnselectAll();
                return;
            }

            // Selected Item
            var layer = GetSelectedLayer();

            if (layer == null)
            {
                GroupSelector.UnselectAll();
                return;
            }

            var prevLayer = layer.AdornedElement
                            .FindVisualParents <FrameworkElement>()
                            .Select(element => (StoryboardLayer)element.GetRenderer())
                            .Skip(1)
                            .FirstOrDefault(adorner => adorner != null && adorner is SelectionLayer);

            if (prevLayer != null)
            {
                GroupSelector.Select(prevLayer, true);
            }
            else
            {
                GroupSelector.UnselectAll();
            }
        }