예제 #1
0
        private void DeleteIdea(ExIdea idea)
        {
            foreach (ExIdea child in idea.Children(Key.Left))
            {
                DeleteIdea(child);
            }
            foreach (ExIdea child in idea.Children(Key.Right))
            {
                DeleteIdea(child);
            }
            foreach (ExIdea child in idea.Children(Key.Up))
            {
                DeleteIdea(child);
            }
            foreach (ExIdea child in idea.Children(Key.Down))
            {
                DeleteIdea(child);
            }

            canvas.Children.Remove(idea);
            if (idea.parent_rel != null)
            {
                canvas.Children.Remove(idea.parent_rel);
            }
        }
예제 #2
0
        private ExIdea MakeIdea(Key direction)
        {
            const int each_distance = 100;
            const int peer_distance = 200;

            ExIdea idea     = new ExIdea();
            var    children = active_idea.Children(direction);

            int sign     = (children.Count % 2 == 1) ? -1 : 1;
            int distance = sign * (children.Count + 1) / 2 * each_distance;

            switch (direction)
            {
            case Key.Left:
                idea.Margin = new Thickness(active_idea.Margin.Left - peer_distance,
                                            active_idea.Margin.Top + distance, 0, 0);
                break;

            case Key.Right:
                idea.Margin = new Thickness(active_idea.Margin.Left + peer_distance,
                                            active_idea.Margin.Top + distance, 0, 0);
                break;

            case Key.Up:
                idea.Margin = new Thickness(active_idea.Margin.Left + distance * 2,
                                            active_idea.Margin.Top - peer_distance, 0, 0);
                break;

            case Key.Down:
                idea.Margin = new Thickness(active_idea.Margin.Left + distance * 2,
                                            active_idea.Margin.Top + peer_distance, 0, 0);
                break;
            }
            idea.notify += Active;

            children.Add(idea);
            active_idea.AddRelation(idea);

            canvas.Children.Add(idea);
            canvas.Children.Add(idea.parent_rel);
            Canvas.SetZIndex(canvas.Children[canvas.Children.Count - 1], -1);

            return(idea);
        }