From 6ea7511873269f749391be32550dc24693400b3c Mon Sep 17 00:00:00 2001 From: jkuehner Date: Sun, 28 Jul 2013 23:01:47 +0200 Subject: [PATCH] Support to hide Controls from the OutlineView. --- .../Project/Images/eye_watch.png | Bin 0 -> 573 bytes .../Project/OutlineView/Outline.xaml | 34 ++++++++++++++++-- .../Project/OutlineView/OutlineNode.cs | 31 ++++++++++++++++ .../Project/OutlineView/OutlineView.xaml | 2 +- .../Project/WpfDesign.Designer.csproj | 3 ++ 5 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Images/eye_watch.png diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Images/eye_watch.png b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Images/eye_watch.png new file mode 100644 index 0000000000000000000000000000000000000000..eb59f110562686f59b3e7e937dc14f46f69582d9 GIT binary patch literal 573 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xjs^IHxLR3R{r~?TNDgTrrndJR&_|9XL4Lsu42(?7tXu*@ zB9hXID!N9NR<3TLNonb2)pea+6K2nuzj)d5RqM8G-?8uLvEwJtoxgnL+O50yA3T5c z`t7?y$<0i7IYt)+eavOBtopomK&t>} + + - + + + + diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineNode.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineNode.cs index d865a1f6e2..9c553ce836 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineNode.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineNode.cs @@ -11,6 +11,9 @@ using System.Collections.ObjectModel; using System.Collections; using ICSharpCode.WpfDesign.Designer; using ICSharpCode.WpfDesign.XamlDom; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; namespace ICSharpCode.WpfDesign.Designer.OutlineView { @@ -41,6 +44,12 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView DesignItem = designItem; UpdateChildren(); + var hidden = designItem.Properties.GetAttachedProperty(DesignTimeProperties.IsHiddenProperty).ValueOnInstance; + if (hidden != null && (bool) hidden == true) { + this._isDesignTimeVisible = false; + ((FrameworkElement) this.DesignItem.Component).Visibility = Visibility.Hidden; + } + //TODO DesignItem.NameChanged += new EventHandler(DesignItem_NameChanged); DesignItem.PropertyChanged += new PropertyChangedEventHandler(DesignItem_PropertyChanged); @@ -80,6 +89,28 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView } } } + + + bool _isDesignTimeVisible = true; + + public bool IsDesignTimeVisible + { + get { + return _isDesignTimeVisible; + } + set { + _isDesignTimeVisible = value; + var ctl = DesignItem.Component as UIElement; + ctl.Visibility = _isDesignTimeVisible ? Visibility.Visible : Visibility.Hidden; + + RaisePropertyChanged("IsDesignTimeVisible"); + + if (!value) + DesignItem.Properties.GetAttachedProperty(DesignTimeProperties.IsHiddenProperty).SetValue(true); + else + DesignItem.Properties.GetAttachedProperty(DesignTimeProperties.IsHiddenProperty).Reset(); + } + } ObservableCollection children = new ObservableCollection(); diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineView.xaml b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineView.xaml index 8dd10c9a17..b7a175d646 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineView.xaml +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineView.xaml @@ -107,7 +107,7 @@ Margin="{TemplateBinding Level, Converter={StaticResource LevelConverter}}" IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}" /> + HorizontalAlignment="Stretch"> diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj index 8febb2aff2..f061141ac7 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj @@ -323,6 +323,9 @@ + + +