File: cdf\src\NetFx40\Tools\System.Activities.Presentation\System\Activities\Presentation\Annotations\DockedAnnotationView.xaml.cs
Project: ndp\System.Data.csproj (System.Data)
//----------------------------------------------------------------
// <copyright company="Microsoft Corporation">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//----------------------------------------------------------------
 
namespace System.Activities.Presentation.Annotations
{
    using System.Windows;
    using System.Windows.Controls;
 
    internal partial class DockedAnnotationView : UserControl, IDockedAnnotation
    {
        public static readonly DependencyProperty IsReadOnlyProperty = DependencyProperty.Register("IsReadOnly", typeof(bool), typeof(DockedAnnotationView));
 
        private static DependencyProperty annotationTextProperty = DependencyProperty.Register("AnnotationText", typeof(string), typeof(DockedAnnotationView), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
 
        public DockedAnnotationView()
        {
            this.InitializeComponent();
        }
 
        public event Action UndockButtonClicked;
 
        public static DependencyProperty AnnotationTextProperty
        {
            get { return annotationTextProperty; }
        }
 
        public bool IsReadOnly
        {
            get { return (bool)GetValue(IsReadOnlyProperty); }
            set { SetValue(IsReadOnlyProperty, value); }
        }
 
        public string AnnotationText
        {
            get { return (string)GetValue(AnnotationTextProperty); }
            set { SetValue(AnnotationTextProperty, value); }
        }
 
        public void FocusOnContent()
        {
            this.textBox.Focus();
        }
 
        protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
        {
            base.OnPropertyChanged(e);
 
            if (e.Property.Name == "IsMouseOver" || e.Property.Name == "IsKeyboardFocusWithin")
            {
                if (this.IsMouseOver || this.IsKeyboardFocusWithin)
                {
                    this.undockButton.Visibility = Visibility.Visible;
                    this.border.Visibility = Visibility.Visible;
                }
                else
                {
                    this.undockButton.Visibility = Visibility.Hidden;
                    this.border.Visibility = Visibility.Hidden;
                }
            }
        }
 
        protected override void OnContextMenuOpening(ContextMenuEventArgs e)
        {
            e.Handled = true;
        }
 
        private void OnUndockButtonClicked(object sender, RoutedEventArgs e)
        {
            if (this.UndockButtonClicked != null)
            {
                this.UndockButtonClicked();
            }
        }
    }
}