void HideAdorner()
        {
            if (this.isAdornerVisible && this.adorner != null)
            {
                var layer = AdornerLayer.GetAdornerLayer(this.AssociatedObject);
                Debug.WriteLineIf(layer == null, "Overlay: cannot find any AdornerLayer on the given element.");

                if (layer != null)
                {
                    layer.Remove(this.adorner);
                    this.adorner          = null;
                    this.isAdornerVisible = false;
                }

                this.AssociatedObject.IsEnabled = this.wasEnabled;
            }
        }
Beispiel #2
0
        static void OnContentPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs args)
        {
            if (!DesignTimeHelper.GetIsInDesignMode())
            {
                var control = ( FrameworkElement )d;
                if (!control.IsLoaded)
                {
                    control.Loaded += (s, e) =>
                    {
                        var layer = AdornerLayer.GetAdornerLayer(control);
                        Debug.WriteLineIf(layer == null, "Overlay: cannot find any AdornerLayer on the given element.");

                        if (layer != null)
                        {
                            var content = GetContent(control);
                            if (content != null)
                            {
                                var a = new ContentOverlayAdorner(control, content);
                                layer.Add(a);

                                SetOverlayAdorner(control, a);
                            }
                        }
                    };

                    control.Unloaded += (s, e) =>
                    {
                        var layer = AdornerLayer.GetAdornerLayer(control);
                        Debug.WriteLineIf(layer == null, "Overlay: cannot find any AdornerLayer on the given element.");

                        if (layer != null)
                        {
                            var a = GetOverlayAdorner(control);
                            if (a != null)
                            {
                                layer.Remove(a);

                                SetOverlayAdorner(control, null);
                            }
                        }
                    };
                }
            }
        }
        void ShowAdorner()
        {
            if (!this.isAdornerVisible)
            {
                var layer = AdornerLayer.GetAdornerLayer(this.AssociatedObject);
                Debug.WriteLineIf(layer == null, "Overlay: cannot find any AdornerLayer on the given element.");

                if (layer != null)
                {
                    this.adorner = new ContentOverlayAdorner(this.AssociatedObject, this.Content)
                    {
                        IsHitTestVisible = this.IsHitTestVisible,
                        Background       = this.Background
                    };
                    layer.Add(this.adorner);

                    this.wasEnabled = this.AssociatedObject.IsEnabled;
                    this.AssociatedObject.IsEnabled = !this.DisableAdornedElement;

                    this.isAdornerVisible = true;
                }
            }
        }
Beispiel #4
0
 static void SetOverlayAdorner(UIElement control, ContentOverlayAdorner value)
 {
     control.SetValue(OverlayAdornerProperty, value);
 }
Beispiel #5
0
		static void OnContentPropertyChanged( DependencyObject d, DependencyPropertyChangedEventArgs args )
		{
			if( !DesignTimeHelper.GetIsInDesignMode() )
			{
				var control = ( FrameworkElement )d;
				if( !control.IsLoaded )
				{
					control.Loaded += ( s, e ) => 
					{
						var layer = AdornerLayer.GetAdornerLayer( control );
						Debug.WriteLineIf( layer == null, "Overlay: cannot find any AdornerLayer on the given element." );

						if( layer != null )
						{
							var content = GetContent( control );
							if( content != null )
							{
								var a = new ContentOverlayAdorner( control, content );
								layer.Add( a );

								SetOverlayAdorner( control, a );
							}
						}
					};

					control.Unloaded += ( s, e ) => 
					{
						var layer = AdornerLayer.GetAdornerLayer( control );
						Debug.WriteLineIf( layer == null, "Overlay: cannot find any AdornerLayer on the given element." );

						if( layer != null )
						{
							var a = GetOverlayAdorner( control );
							if( a != null )
							{
								layer.Remove( a );

								SetOverlayAdorner( control, null );
							}
						}
					};
				}
			}
		}
Beispiel #6
0
		static void SetOverlayAdorner( UIElement control, ContentOverlayAdorner value )
		{
			control.SetValue( OverlayAdornerProperty, value );
		}