Browse Source

Merge pull request #664 from gumme/WpfDesignerIsHiddenFixes

pull/676/head
Andreas Weizel 11 years ago
parent
commit
bcef7b1857
  1. 4
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineNodeBase.cs
  2. 32
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/DesignTimeProperties.cs

4
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/OutlineView/OutlineNodeBase.cs

@ -40,7 +40,6 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView @@ -40,7 +40,6 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView
{ }
if (hidden) {
_isDesignTimeVisible = false;
((FrameworkElement)DesignItem.Component).Visibility = Visibility.Hidden;
}
bool locked = false;
@ -112,9 +111,6 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView @@ -112,9 +111,6 @@ namespace ICSharpCode.WpfDesign.Designer.OutlineView
set
{
_isDesignTimeVisible = value;
var ctl = DesignItem.Component as UIElement;
if(ctl!=null)
ctl.Visibility = _isDesignTimeVisible ? Visibility.Visible : Visibility.Hidden;
RaisePropertyChanged("IsDesignTimeVisible");

32
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/DesignTimeProperties.cs

@ -16,6 +16,8 @@ @@ -16,6 +16,8 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using System.ComponentModel;
using System.Windows;
namespace ICSharpCode.WpfDesign.XamlDom
@ -47,8 +49,36 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -47,8 +49,36 @@ namespace ICSharpCode.WpfDesign.XamlDom
/// Design-time IsHidden property
/// </summary>
public static readonly DependencyProperty IsHiddenProperty =
DependencyProperty.RegisterAttached("IsHidden", typeof(bool), typeof(DesignTimeProperties));
DependencyProperty.RegisterAttached("IsHidden", typeof(bool), typeof(DesignTimeProperties), new PropertyMetadata(new PropertyChangedCallback(OnIsHiddenPropertyChanged)));
static void OnIsHiddenPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var dpd = DependencyPropertyDescriptor.FromProperty(UIElement.VisibilityProperty, d.GetType());
if ((bool)e.NewValue) {
EnsureHidden(d);
dpd.AddValueChanged(d, OnVisibilityPropertyChanged);
} else {
dpd.RemoveValueChanged(d, OnVisibilityPropertyChanged);
d.InvalidateProperty(UIElement.VisibilityProperty);
}
}
static void OnVisibilityPropertyChanged(object sender, EventArgs e)
{
var d = sender as DependencyObject;
if (d != null && GetIsHidden(d)) {
EnsureHidden(d);
}
}
static void EnsureHidden(DependencyObject d)
{
if (Visibility.Visible.Equals(d.GetValue(UIElement.VisibilityProperty))) {
d.SetCurrentValue(UIElement.VisibilityProperty, Visibility.Hidden);
}
}
#endregion
#region IsLocked

Loading…
Cancel
Save