diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs index 5b8a9752..53a6c0f0 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/RichTextBoxFormatBar/RichTextBoxFormatBarManager.cs @@ -210,13 +210,25 @@ namespace Xceed.Wpf.Toolkit //top if( top < 0 ) { - top = mousePosition.Y + 10; + top = Math.Max( mousePosition.Y + 10, 5 ); + } + + // bottom + if ( top + adorningEditor.ActualHeight > _richTextBox.ActualHeight - 20 ) + { + top = _richTextBox.ActualHeight - adorningEditor.ActualHeight - 20; + } + + // left boundary + if ( left < 0 ) + { + left = 5; } //right boundary if( left + adorningEditor.ActualWidth > _richTextBox.ActualWidth - 20 ) { - left = left - ( adorningEditor.ActualWidth - ( _richTextBox.ActualWidth - left ) ); + left = _richTextBox.ActualWidth - adorningEditor.ActualWidth - 20; } _adorner.SetOffsets( left, top );