private void SetTextContentAdapter()
        {
            contentAdapter = IsPassword ? (ITextContenttAdapter) new PasswordBoxAdapter() : new TextBoxAdapter();

            contentAdapter.TextChanged            += (sender, e) => this.Text = contentAdapter.Text;
            contentAdapter.CaretIndexChanged      += (sender, e) => this.CaretIndex = contentAdapter.CaretIndex;
            contentAdapter.SelectionStartChanged  += (sender, e) => this.SelectionStart = contentAdapter.SelectionStart;
            contentAdapter.SelectionLengthChanged += (sender, e) => this.SelectionLength = contentAdapter.SelectionLength;
            contentAdapter.Control.AddHandler(wpf::System.Windows.Input.Mouse.QueryCursorEvent, (wpf::System.Windows.Input.QueryCursorEventHandler)((sender, e) =>
            {
                e.Cursor  = wpf::System.Windows.Input.Cursors.Arrow;
                e.Handled = false;
            }), true);

            SetContentBounds();
            contentAdapter.Text = Text;
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.TextBox.MaxLengthProperty, MaxLength);
            contentAdapter.CaretIndex      = CaretIndex;
            contentAdapter.SelectionStart  = SelectionStart;
            contentAdapter.SelectionLength = SelectionLength;
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.TextBox.AcceptsReturnProperty, AcceptsReturn);
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.TextBox.AcceptsTabProperty, AcceptsTab);
            contentAdapter.IsReadOnly = IsReadOnly;
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.SpellCheck.IsEnabledProperty, SpellCheck);
            contentAdapter.Control.SetValue(wpf::System.Windows.Documents.Block.TextAlignmentProperty, converter.Convert(TextAlignment));
            contentAdapter.Control.Foreground       = converter.Convert(Foreground);
            contentAdapter.Control.FontFamily       = converter.Convert(FontFamily);
            contentAdapter.Control.FontSize         = FontSize;
            contentAdapter.Control.FontStyle        = converter.Convert(FontStyle);
            contentAdapter.Control.FontStretch      = converter.Convert(FontStretch);
            contentAdapter.Control.FontWeight       = converter.Convert(FontWeight);
            contentAdapter.Control.IsHitTestVisible = IsHitTestVisible;
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.TextBlock.TextWrappingProperty, converter.Convert(TextWrapping));
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.ScrollViewer.HorizontalScrollBarVisibilityProperty, converter.Convert(HorizontalScrollBarVisibility));
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.ScrollViewer.VerticalScrollBarVisibilityProperty, converter.Convert(VerticalScrollBarVisibility));
        }
        private void SetTextContentAdapter()
        {
            contentAdapter = IsPassword ? (ITextContenttAdapter)new PasswordBoxAdapter() : new TextBoxAdapter();

            contentAdapter.TextChanged += (sender, e) => this.Text = contentAdapter.Text;
            contentAdapter.CaretIndexChanged += (sender, e) => this.CaretIndex = contentAdapter.CaretIndex;
            contentAdapter.SelectionStartChanged += (sender, e) => this.SelectionStart = contentAdapter.SelectionStart;
            contentAdapter.SelectionLengthChanged += (sender, e) => this.SelectionLength = contentAdapter.SelectionLength;
            contentAdapter.Control.AddHandler(wpf::System.Windows.Input.Mouse.QueryCursorEvent, (wpf::System.Windows.Input.QueryCursorEventHandler)((sender, e) =>
            {
                e.Cursor = wpf::System.Windows.Input.Cursors.Arrow;
                e.Handled = false;
            }), true);

            SetContentBounds();
            contentAdapter.Text = Text;
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.TextBox.MaxLengthProperty, MaxLength);
            contentAdapter.CaretIndex = CaretIndex;
            contentAdapter.SelectionStart = SelectionStart;
            contentAdapter.SelectionLength = SelectionLength;
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.TextBox.AcceptsReturnProperty, AcceptsReturn);
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.TextBox.AcceptsTabProperty, AcceptsTab);
            contentAdapter.IsReadOnly = IsReadOnly;
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.SpellCheck.IsEnabledProperty, SpellCheck);
            contentAdapter.Control.SetValue(wpf::System.Windows.Documents.Block.TextAlignmentProperty, converter.Convert(TextAlignment));
            contentAdapter.Control.Foreground = converter.Convert(Foreground);
            contentAdapter.Control.FontFamily = converter.Convert(FontFamily);
            contentAdapter.Control.FontSize = FontSize;
            contentAdapter.Control.FontStyle = converter.Convert(FontStyle);
            contentAdapter.Control.FontStretch = converter.Convert(FontStretch);
            contentAdapter.Control.FontWeight = converter.Convert(FontWeight);
            contentAdapter.Control.IsHitTestVisible = IsHitTestVisible;
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.TextBlock.TextWrappingProperty, converter.Convert(TextWrapping));
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.ScrollViewer.HorizontalScrollBarVisibilityProperty, converter.Convert(HorizontalScrollBarVisibility));
            contentAdapter.Control.SetValue(wpf::System.Windows.Controls.ScrollViewer.VerticalScrollBarVisibilityProperty, converter.Convert(VerticalScrollBarVisibility));
        }