<
telerikHTML:HtmlDataProvider
Name
=
"dp1"
Html
=
"{Binding TaskText, Mode=TwoWay}"
RichTextBox
=
"{Binding ElementName=TaskEditor}"
/>
<
telerik:RadRichTextBox
x:Name
=
"TaskEditor"
Grid.Row
=
"1"
Grid.Column
=
"1"
Margin
=
"0,5,0,5"
AllowDrop
=
"True"
ShowComments
=
"True"
IsSelectionMiniToolBarEnabled
=
"false"
LayoutMode
=
"Flow"
DocumentInheritsDefaultStyleSettings
=
"True"
GotFocus
=
"EditorGotFocus"
LostFocus
=
"EditorLostFocus"
/>
private
void
EditorGotFocus(
object
sender, RoutedEventArgs e)
{
_lastDataContext = _contextualTabView.DataContext;
_contextualTabView.DataContext = TaskEditor.Commands;
_lastTab = _ribbonView.SelectedTab;
_contextualGroup.IsActive =
true
;
}
private
void
EditorLostFocus(
object
sender, RoutedEventArgs e)
{
_contextualGroup.IsActive =
false
;
_lastTab.IsSelected =
true
;
_contextualTabView.DataContext = _lastDataContext;
}
7 Answers, 1 is accepted
Unfortunately, I am not sure that I understand your scenario. I tried using the code in your snippet, but was not able to reproduce the behavior.
However, handling the editor's LostFocus and GotFocus can be a little tricky, because the headers and footers, as well as the comments are represented by other editors. Therefore, the GotFocus and LostFocus events of the editor are fired more often (one of the cases is exactly when you focus a comment or get back to the main document).
Could you provide some more details on the RadRichTextBoxRibbonUI of your case and specify the version of WPF controls you are using. It will be great to send us a simple demo through a support ticked, so we can investigate the issue further.
Looking forward for your reply.
Iva Toteva
the Telerik team
In general, when you need to find out if the focus is in the rich text box, you can use FrameworkElement.IsKeyboardFocusWithin to find if RadRichTextBox is focused. For example, you can implement the LostFocus method like this:
private
void
EditorLostFocus(
object
sender, RoutedEventArgs e)
{
RadRichTextBox richTextBox = (RadRichTextBox)sender;
if
(richTextBox.IsKeyboardFocusWithin)
{
return
;
}
_contextualGroup.IsActive =
false
;
_lastTab.IsSelected =
true
;
_contextualTabView.DataContext = _lastDataContext;
}
If this does not work for you, we would appreciate a demo project. Kind regards,
Iva Toteva
the Telerik team
This example should show you the issue with typing inside of a comment as well as the cursor not showing up.
<
Window
x:Class
=
"DockingExample.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:local
=
"clr-namespace:DockingExample"
WindowState
=
"Maximized"
Title
=
"RichTextBox Example"
Height
=
"700"
Width
=
"1030"
>
<
Grid
>
<
Grid.Resources
>
<
DataTemplate
x:Key
=
"GridDetailRowInfo"
>
<
local:GridDetailRowInfo
/>
</
DataTemplate
>
</
Grid.Resources
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"Auto"
/>
<
RowDefinition
Height
=
"*"
/>
</
Grid.RowDefinitions
>
<
telerik:RadRibbonView
Grid.Row
=
"0"
HorizontalAlignment
=
"Stretch"
VerticalAlignment
=
"Top"
Name
=
"radRibbonView1"
ApplicationName
=
""
Title
=
""
IsMinimizable
=
"False"
ApplicationButtonVisibility
=
"Collapsed"
>
<
telerik:RadRibbonView.Resources
>
<
telerik:FontFamiliesProvider
x:Key
=
"FontFamiliesProvider"
/>
</
telerik:RadRibbonView.Resources
>
<
telerik:RadRibbonView.ContextualGroups
>
<
telerik:RadRibbonContextualGroup
Header
=
"Editing Tools"
x:Name
=
"CommentEditing"
>
</
telerik:RadRibbonContextualGroup
>
</
telerik:RadRibbonView.ContextualGroups
>
<
telerik:RadRibbonTab
Header
=
"Home"
/>
<
telerik:RadRibbonTab
Header
=
"Tab 1"
IsSelected
=
"True"
>
<
telerik:RadRibbonGroup
Header
=
"Select"
>
<
telerik:RadRibbonSplitButton
Text
=
"Select"
Size
=
"Large"
>
</
telerik:RadRibbonSplitButton
>
</
telerik:RadRibbonGroup
>
</
telerik:RadRibbonTab
>
<
telerik:RadRibbonTab
Header
=
"Reports"
/>
<
telerik:RadRibbonTab
Header
=
"Setup"
/>
<
telerik:RadRibbonTab
Header
=
" Editing Tools "
ContextualGroupName
=
"CommentEditing"
x:Name
=
"CommentEditingTab"
>
<
telerik:RadRibbonGroup
Header
=
"Clipboard"
>
<
telerik:RadRibbonGroup.Variants
>
<
telerik:GroupVariant
Priority
=
"0"
Variant
=
"Medium"
/>
</
telerik:RadRibbonGroup.Variants
>
<
StackPanel
>
<
telerik:RadRibbonButton
CollapseToSmall
=
"WhenGroupIsMedium"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=CutCommand}"
telerik:ScreenTip.Description
=
"Cut the selection and put it on the Clipboard."
telerik:ScreenTip.Title
=
"Cut"
Size
=
"Medium"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/cut.png"
Text
=
"Cut"
/>
<
telerik:RadRibbonButton
CollapseToSmall
=
"WhenGroupIsMedium"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=CopyCommand}"
telerik:ScreenTip.Description
=
"Copy the selection and put it on the Clipboard."
telerik:ScreenTip.Title
=
"Copy"
Size
=
"Medium"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/copy.png"
Text
=
"Copy"
/>
<
telerik:RadRibbonButton
CollapseToSmall
=
"WhenGroupIsMedium"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=PasteCommand}"
telerik:ScreenTip.Description
=
"Paste the contents of the Clipboard."
telerik:ScreenTip.Title
=
"Paste"
Size
=
"Medium"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/paste.png"
Text
=
"Paste"
/>
</
StackPanel
>
</
telerik:RadRibbonGroup
>
<
telerik:RadRibbonGroup
DialogLauncherVisibility
=
"Visible"
Header
=
"Font"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ShowFontPropertiesDialogCommand}"
telerik:ScreenTip.Description
=
"Show the font dialog box."
telerik:ScreenTip.Icon
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/FontDialog.png"
telerik:ScreenTip.Title
=
"Font"
>
<
telerik:RadRibbonGroup.Variants
>
<
telerik:GroupVariant
Priority
=
"4"
Variant
=
"Medium"
/>
<
telerik:GroupVariant
Priority
=
"6"
Variant
=
"Small"
/>
<
telerik:GroupVariant
Priority
=
"7"
Variant
=
"Collapsed"
/>
</
telerik:RadRibbonGroup.Variants
>
<
telerik:RadOrderedWrapPanel
>
<
StackPanel
Orientation
=
"Horizontal"
>
<
telerik:RadRibbonComboBox
CanAutocompleteSelectItems
=
"False"
CanKeyboardNavigationSelectItems
=
"False"
CommandParameter
=
"{Binding RelativeSource={RelativeSource Self}, Path=SelectedValue}"
Height
=
"21"
IsReadOnly
=
"True"
ItemsSource
=
"{Binding Source={StaticResource FontFamiliesProvider}, Path=RegisteredFonts}"
OpenDropDownOnFocus
=
"True"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeFontFamilyCommand}"
telerik:ScreenTip.Description
=
"Change the font family."
telerik:ScreenTip.Title
=
"Font"
Width
=
"132"
/>
<
telerik:RadRibbonComboBox
CanAutocompleteSelectItems
=
"False"
CanKeyboardNavigationSelectItems
=
"False"
CommandParameter
=
"{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.Tag}"
Height
=
"21"
IsEditable
=
"True"
IsReadOnly
=
"True"
IsTextSearchEnabled
=
"False"
OpenDropDownOnFocus
=
"True"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeFontSizeCommand}"
telerik:ScreenTip.Description
=
"Change the font size."
telerik:ScreenTip.Title
=
"Font Size"
Width
=
"45"
>
<
telerik:RadRibbonComboBoxItem
Content
=
"8"
Tag
=
"10.67"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"9"
Tag
=
"12"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"10"
Tag
=
"13.33"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"11"
Tag
=
"14.67"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"12"
Tag
=
"16"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"14"
Tag
=
"18.67"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"16"
Tag
=
"21.33"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"18"
Tag
=
"24"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"20"
Tag
=
"26.67"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"22"
Tag
=
"29.33"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"24"
Tag
=
"32"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"26"
Tag
=
"34.67"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"28"
Tag
=
"37.33"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"36"
Tag
=
"48"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"48"
Tag
=
"64"
/>
<
telerik:RadRibbonComboBoxItem
Content
=
"72"
Tag
=
"96"
/>
</
telerik:RadRibbonComboBox
>
</
StackPanel
>
<
telerik:RadButtonGroup
>
<
telerik:RadRibbonButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=IncrementFontSizeCommand}"
telerik:ScreenTip.Description
=
"Increase the font size."
telerik:ScreenTip.Title
=
"Grow Font"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/font-increasesize.png"
/>
<
telerik:RadRibbonButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=DecrementFontSizeCommand}"
telerik:ScreenTip.Description
=
"Decrease the font size."
telerik:ScreenTip.Title
=
"Shrink Font"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/font-decreasesize.png"
/>
</
telerik:RadButtonGroup
>
<
telerik:RadButtonGroup
>
<
telerik:RadRibbonButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ClearFormattingCommand}"
telerik:ScreenTip.Description
=
"Clear all the formatting from the selection, leaving only the plain text."
telerik:ScreenTip.Title
=
"Clear Formatting"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/ClearFormatting16.png"
/>
</
telerik:RadButtonGroup
>
<
telerik:RadButtonGroup
>
<
telerik:RadRibbonToggleButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleBoldCommand}"
telerik:ScreenTip.Description
=
"Make the selected text bold."
telerik:ScreenTip.Title
=
"Bold"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/bold.png"
/>
<
telerik:RadRibbonToggleButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleItalicCommand}"
telerik:ScreenTip.Description
=
"Italicize the selected text."
telerik:ScreenTip.Title
=
"Italic"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/italic.png"
/>
<
telerik:RadRibbonSplitButton
IsToggle
=
"True"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleUnderlineCommand}"
telerik:ScreenTip.Description
=
"Underline the selected text."
telerik:ScreenTip.Title
=
"Underline"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/underline.png"
>
<
telerik:RadRibbonSplitButton.DropDownContent
>
<
telerik:RadGallery
ItemHeight
=
"26"
ItemWidth
=
"156"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeUnderlineDecorationCommand}"
ViewportHeight
=
"210"
ViewportWidth
=
"157"
>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/underline1.png"
Tag
=
"Line"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/underline2.png"
Tag
=
"DoubleLine"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/underline3.png"
Tag
=
"ThickLine"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/underline4.png"
Tag
=
"DottedLine"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/underline5.png"
Tag
=
"DashedLine"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/underline6.png"
Tag
=
"DotDashedLine"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/underline7.png"
Tag
=
"DotDotDashedLine"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/underline8.png"
Tag
=
"Wave"
/>
</
telerik:RadGallery
>
</
telerik:RadRibbonSplitButton.DropDownContent
>
</
telerik:RadRibbonSplitButton
>
<
telerik:RadRibbonToggleButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleStrikethroughCommand}"
telerik:ScreenTip.Description
=
"Draw a line through the middle of the selected text."
telerik:ScreenTip.Title
=
"Strikethrough"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/Strikethrough16.png"
/>
<
telerik:RadRibbonToggleButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleSubscriptCommand}"
telerik:ScreenTip.Description
=
"Create small letters below the text baseline."
telerik:ScreenTip.Title
=
"Subscript"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/subscript.png"
/>
<
telerik:RadRibbonToggleButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleSuperscriptCommand}"
telerik:ScreenTip.Description
=
"Create small text above the line of text."
telerik:ScreenTip.Title
=
"Superscript"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/superscript.png"
/>
</
telerik:RadButtonGroup
>
<
telerik:RadButtonGroup
>
<
telerik:HighlightColorPicker
AutomaticColor
=
"Transparent"
Height
=
"22"
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/highlight.png"
NoColorText
=
"No color"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeFontHighlightColorCommand}"
telerik:ScreenTip.Description
=
"Make text look like it was marked with a highlighter pen."
telerik:ScreenTip.Title
=
"Text Highlight Color"
SelectedColor
=
"Yellow"
/>
<
telerik:HighlightColorPicker
Height
=
"22"
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/FontForeColor.png"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeFontForeColorCommand}"
telerik:ScreenTip.Description
=
"Change the text color."
telerik:ScreenTip.Title
=
"Font Color"
SelectedColor
=
"Red"
/>
</
telerik:RadButtonGroup
>
</
telerik:RadOrderedWrapPanel
>
</
telerik:RadRibbonGroup
>
<
telerik:RadRibbonGroup
DialogLauncherVisibility
=
"Visible"
Header
=
"Paragraph"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ShowParagraphPropertiesDialogCommand}"
telerik:ScreenTip.Description
=
"Show the Paragraph dialog box."
telerik:ScreenTip.Icon
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/PropertiesDialog.png"
telerik:ScreenTip.Title
=
"Paragraph"
>
<
telerik:RadRibbonGroup.Variants
>
<
telerik:GroupVariant
Priority
=
"3"
Variant
=
"Medium"
/>
<
telerik:GroupVariant
Priority
=
"5"
Variant
=
"Collapsed"
/>
</
telerik:RadRibbonGroup.Variants
>
<
telerik:RadOrderedWrapPanel
>
<
telerik:RadButtonGroup
>
<
telerik:RadRibbonToggleButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleBulletsCommand}"
telerik:ScreenTip.Description
=
"Start a bulleted list."
telerik:ScreenTip.Title
=
"Bullets"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/list-bullets.png"
/>
<
telerik:RadRibbonToggleButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleNumberedCommand}"
telerik:ScreenTip.Description
=
"Start a numbered list."
telerik:ScreenTip.Title
=
"Numbering"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/list-numbered.png"
/>
<
telerik:RadRibbonDropDownButton
telerik:ScreenTip.Description
=
"Start a multilevel list. Click the arrow to choose different multilevel list styles."
telerik:ScreenTip.Title
=
"Multilevel List"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/MultilevelList.png"
>
<
telerik:RadRibbonDropDownButton.DropDownContent
>
<
StackPanel
>
<
telerik:RadGroupHeader
Content
=
"List Library"
/>
<
telerik:RadGallery
ItemHeight
=
"88"
ItemWidth
=
"88"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeListStyleCommand}"
ViewportHeight
=
"176"
ViewportWidth
=
"266"
>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/MultilevelListNone.png"
Tag
=
"None"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/MultilevelListBulleted.png"
Tag
=
"Bulleted"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/MultilevelListNumbered.png"
Tag
=
"Numbered"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/MultilevelListNumberedParenthesis.png"
Tag
=
"NumberedParenthesis"
/>
<
telerik:RadGalleryItem
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/MultilevelListNumberedHierarchical.png"
Tag
=
"NumberedHierarchical"
/>
</
telerik:RadGallery
>
</
StackPanel
>
</
telerik:RadRibbonDropDownButton.DropDownContent
>
</
telerik:RadRibbonDropDownButton
>
</
telerik:RadButtonGroup
>
<
telerik:RadButtonGroup
>
<
telerik:RadRibbonButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=DecrementParagraphLeftIndentCommand}"
telerik:ScreenTip.Description
=
"Decrease the indent level of the paragraph."
telerik:ScreenTip.Title
=
"Decrease Indent"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/outdent.png"
/>
<
telerik:RadRibbonButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=IncrementParagraphLeftIndentCommand}"
telerik:ScreenTip.Description
=
"Increase the indent level of the paragraph."
telerik:ScreenTip.Title
=
"Increase Indent"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/indent.png"
/>
</
telerik:RadButtonGroup
>
<
telerik:RadButtonGroup
>
<
telerik:RadRibbonToggleButton
CommandParameter
=
"LeftToRight"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeParagraphFlowDirectionCommand}"
telerik:ScreenTip.Description
=
"Set the direction of text to be displayed from left to right."
telerik:ScreenTip.Title
=
"Left-To-Right Text Direction"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/LeftToRightFlowDirection.png"
Text
=
"Left-to-Right Text Direction"
/>
<
telerik:RadRibbonToggleButton
CommandParameter
=
"RightToLeft"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeParagraphFlowDirectionCommand}"
telerik:ScreenTip.Description
=
"Set the direction of text to be displayed from right to left."
telerik:ScreenTip.Title
=
"Right-To-Left Text Direction"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/RightToLeftFlowDirection.png"
Text
=
"Right-to-Left Text Direction"
/>
</
telerik:RadButtonGroup
>
<
telerik:RadButtonGroup
>
<
telerik:RadRibbonToggleButton
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleFormattingSymbolsCommand}"
telerik:ScreenTip.Description
=
"Show paragraph marks and other hidden formatting symbols."
telerik:ScreenTip.Title
=
"Show/Hide Formatting Symbols"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/formatting-symbols.png"
/>
</
telerik:RadButtonGroup
>
<
telerik:RadButtonGroup
>
<
telerik:RadRibbonToggleButton
CommandParameter
=
"Left"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeTextAlignmentCommand}"
telerik:ScreenTip.Description
=
"Align text to the left."
telerik:ScreenTip.Title
=
"Align Text Left"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/alignleft.png"
Text
=
"Align Left"
/>
<
telerik:RadRibbonToggleButton
CommandParameter
=
"Center"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeTextAlignmentCommand}"
telerik:ScreenTip.Description
=
"Center text."
telerik:ScreenTip.Title
=
"Center"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/aligncenter.png"
Text
=
"Center"
/>
<
telerik:RadRibbonToggleButton
CommandParameter
=
"Right"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeTextAlignmentCommand}"
telerik:ScreenTip.Description
=
"Align text to the right."
telerik:ScreenTip.Title
=
"Align Text Right"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/alignright.png"
Text
=
"Align Right"
/>
<
telerik:RadRibbonToggleButton
CommandParameter
=
"Justify"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeTextAlignmentCommand}"
telerik:ScreenTip.Description
=
"Align text to both left and right margins, adding extra space between words as necessary."
telerik:ScreenTip.Title
=
"Justify"
Size
=
"Small"
SmallImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/alignjustify.png"
Text
=
"Justify"
/>
</
telerik:RadButtonGroup
>
<
telerik:RadButtonGroup
>
<
telerik:HighlightColorPicker
AutomaticColor
=
"Transparent"
Height
=
"20"
Image
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/16/ParagraphBackgroundColor.png"
NoColorText
=
"No color"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ChangeParagraphBackgroundColorCommand}"
telerik:ScreenTip.Description
=
"Color the background behind the selected text or paragraph."
telerik:ScreenTip.Title
=
"Shading"
SelectedColor
=
"Transparent"
/>
</
telerik:RadButtonGroup
>
</
telerik:RadOrderedWrapPanel
>
</
telerik:RadRibbonGroup
>
<
telerik:RadRibbonGroup
Header
=
"Proofing"
>
<
telerik:RadRibbonButton
LargeImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/32/EnableSpellCheck.png"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ShowSpellCheckingDialogCommand}"
telerik:ScreenTip.Description
=
"Check the spelling of text in the document."
telerik:ScreenTip.Title
=
"Spelling"
Size
=
"Large"
Text
=
"Spell Check"
/>
</
telerik:RadRibbonGroup
>
<
telerik:RadRibbonGroup
Header
=
"Comments"
>
<
telerik:RadRibbonButton
LargeImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/32/NewComment.png"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=InsertCommentCommand}"
telerik:ScreenTip.Description
=
"Add a comment about the selection."
telerik:ScreenTip.Title
=
"Insert Comment"
Size
=
"Large"
Text
=
"New Comment"
/>
<
telerik:RadRibbonButton
LargeImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/32/DeleteComment.png"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=DeleteCommentCommand}"
telerik:ScreenTip.Description
=
"Delete the selected comment."
telerik:ScreenTip.Title
=
"Delete Comment"
Size
=
"Large"
Text
=
"Delete"
/>
<
telerik:RadRibbonButton
LargeImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/32/PreviousComment.png"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=GoToPreviousCommentCommand}"
telerik:ScreenTip.Description
=
"Navigate to the previous comment in the document."
telerik:ScreenTip.Title
=
"Previous Comment"
Size
=
"Large"
Text
=
"Previous"
/>
<
telerik:RadRibbonButton
LargeImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/32/NextComment.png"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=GoToNextCommentCommand}"
telerik:ScreenTip.Description
=
"Navigate to the next comment in the document."
telerik:ScreenTip.Title
=
"Next Comment"
Size
=
"Large"
Text
=
"Next"
/>
<
telerik:RadRibbonToggleButton
LargeImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/32/ShowHideComments.png"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=ToggleCommentsCommand}"
telerik:ScreenTip.Description
=
"Click here to show or hide the comments."
telerik:ScreenTip.Title
=
"Show/Hide Comments"
Size
=
"Large"
Text
=
"Show/Hide Comments"
/>
<
telerik:RadRibbonButton
LargeImage
=
"pack://application:,,,/Telerik.Windows.Controls.RichTextBoxUI;component/Images/MSOffice/32/DeleteAllComments.png"
telerik:RadRichTextBoxRibbonUI.RichTextCommand
=
"{Binding Path=DeleteAllCommentsCommand}"
telerik:ScreenTip.Description
=
"Click here to delete all of the comments in the document."
telerik:ScreenTip.Title
=
"Delete All Comments"
Size
=
"Large"
Text
=
"Delete All"
/>
</
telerik:RadRibbonGroup
>
</
telerik:RadRibbonTab
>
</
telerik:RadRibbonView
>
<
telerik:RadDocking
BorderThickness
=
"5"
Padding
=
"2"
HasDocumentHost
=
"False"
AllowUnsafeMode
=
"True"
Grid.Row
=
"1"
>
<
telerik:RadSplitContainer
Orientation
=
"Vertical"
InitialPosition
=
"DockedTop"
MinWidth
=
"400"
>
<
telerik:RadPaneGroup
>
<
telerik:RadPane
Header
=
"Reference Materials"
x:Name
=
"ReferenceMaterialsPanel"
>
<
telerik:RadGridView
DockPanel.Dock
=
"Bottom"
x:Name
=
"RadGridView"
ItemsSource
=
"{Binding DataList}"
AutoGenerateColumns
=
"False"
RowIndicatorVisibility
=
"Collapsed"
RowDetailsVisibilityMode
=
"VisibleWhenSelected"
RowDetailsTemplate
=
"{StaticResource GridDetailRowInfo}"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewToggleRowDetailsColumn
/>
<
telerik:GridViewDataColumn
Header
=
"Title"
Width
=
"250"
DataMemberBinding
=
"{Binding Column1}"
/>
<
telerik:GridViewDataColumn
Header
=
"Reference Type"
Width
=
"250"
DataMemberBinding
=
"{Binding Column2}"
/>
<
telerik:GridViewDataColumn
Header
=
"File Name"
Width
=
"250"
DataMemberBinding
=
"{Binding Column3}"
/>
<
telerik:GridViewDataColumn
Header
=
"Size"
Width
=
"100"
DataMemberBinding
=
"{Binding column4}"
/>
<
telerik:GridViewDataColumn
Header
=
"Last Modified"
Width
=
"150"
DataMemberBinding
=
"{Binding Column5}"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
</
telerik:RadPane
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
</
telerik:RadDocking
>
</
Grid
>
</
Window
>
using
System.Collections.Generic;
using
System.Collections.ObjectModel;
using
System.ComponentModel;
using
Telerik.Windows.Documents.Model;
namespace
DockingExample
{
public
class
MainWindowViewModel : INotifyPropertyChanged
{
public
event
PropertyChangedEventHandler PropertyChanged;
private
void
FirePropertyChanged(
string
property)
{
//Should only be called by ViewModel base class. Derived classes should use lambda/LINQ syntax to simplify refactoring
if
(PropertyChanged !=
null
)
PropertyChanged(
this
,
new
PropertyChangedEventArgs(property));
}
public
MainWindowViewModel()
{
Comment =
new
RadDocument();
DataList =
new
ObservableCollection<DataModel>();
var dataModel1 =
new
DataModel
{
Column1 =
"Manual"
,
Column2 =
"Manual"
,
Column3 =
"Manual.pdf"
,
Column4 =
"323432343"
,
Column5 =
"10/25/2008 11:15:23 AM"
};
var dataModel2 =
new
DataModel
{
Column1 =
"Front"
,
Column2 =
"Photgraphs"
,
Column3 =
"front.jpg"
,
Column4 =
"323443"
,
Column5 =
"11/05/2008 08:03:23 AM"
};
DataList.Add(dataModel1);
DataList.Add(dataModel2);
FirePropertyChanged(
"DataList"
);
}
public
ObservableCollection<DataModel> DataList {
get
;
set
; }
public
RadDocument Comment {
get
;
set
; }
}
}
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Windows;
using
Telerik.Windows.Controls;
using
Telerik.Windows.Controls.DragDrop;
using
Telerik.Windows.Documents.Layout;
using
Telerik.Windows.Documents.Model;
namespace
DockingExample
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public
partial
class
MainWindow : Window
{
public
MainWindowViewModel ViewModel {
get
;
set
; }
public
static
RadRibbonView radRibbonView2;
public
static
RadRibbonTab editingTab;
public
MainWindow()
{
RadDragAndDropManager.EnableNativeDrag =
true
;
ViewModel =
new
MainWindowViewModel();
this
.DataContext = ViewModel;
ViewModel.Comment.LayoutMode = DocumentLayoutMode.Flow;
ViewModel.Comment.ParagraphDefaultSpacingAfter = 5;
ViewModel.Comment.PageViewMargin =
new
SizeF(1, 1);
ViewModel.Comment.SectionDefaultPageMargin =
new
Padding(5);
InitializeComponent();
radRibbonView2 = radRibbonView1;
editingTab = CommentEditingTab;
}
}
}
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Linq;
using
System.Text;
namespace
DockingExample
{
public
class
DataModel : INotifyPropertyChanged
{
private
string
_column1 =
""
;
public
string
Column1
{
get
{
return
_column1; }
set
{ _column1 = value; OnPropertyChanged(
"Column1"
); }
}
private
string
_column2 =
""
;
public
string
Column2
{
get
{
return
_column2; }
set
{ _column2 = value; OnPropertyChanged(
"Column2"
); }
}
private
string
_column3;
public
string
Column3
{
get
{
return
_column3; }
set
{ _column3 = value; OnPropertyChanged(
"Column3"
); }
}
private
string
_column4;
public
string
Column4
{
get
{
return
_column4; }
set
{ _column4 = value; OnPropertyChanged(
"Column4"
); }
}
private
string
_column5;
public
string
Column5
{
get
{
return
_column5; }
set
{ _column5 = value; OnPropertyChanged(
"Column5"
); }
}
public
event
PropertyChangedEventHandler PropertyChanged;
private
void
OnPropertyChanged(
string
property)
{
if
(PropertyChanged !=
null
)
PropertyChanged(
this
,
new
PropertyChangedEventArgs(property));
}
}
}
<
UserControl
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
x:Class
=
"DockingExample.GridDetailRowInfo"
Background
=
"Transparent"
mc:Ignorable
=
"d"
d:DesignHeight
=
"165"
d:DesignWidth
=
"300"
>
<
Grid
>
<
Border
BorderThickness
=
"2"
Margin
=
"3"
BorderBrush
=
"Black"
CornerRadius
=
"12"
Padding
=
"5"
Background
=
"Transparent"
HorizontalAlignment
=
"Stretch"
VerticalAlignment
=
"Stretch"
>
<
telerik:RadTabControl
Margin
=
"2"
BackgroundVisibility
=
"Hidden"
HorizontalAlignment
=
"Stretch"
VerticalAlignment
=
"Stretch"
>
<
telerik:RadTabItem
Header
=
"Information"
>
<
Grid
Width
=
"Auto"
HorizontalAlignment
=
"Stretch"
VerticalAlignment
=
"Stretch"
Background
=
"Transparent"
Margin
=
"5"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"20"
/>
<
RowDefinition
Height
=
"20"
/>
<
RowDefinition
Height
=
"20"
/>
<
RowDefinition
Height
=
"20"
/>
<
RowDefinition
Height
=
"20"
/>
<
RowDefinition
Height
=
"120"
/>
</
Grid.RowDefinitions
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"Auto"
/>
<
ColumnDefinition
Width
=
"*"
/>
</
Grid.ColumnDefinitions
>
<
TextBlock
Text
=
"Title: "
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"0"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"{Binding Column1}"
Margin
=
"5,0,0,0"
Grid.Row
=
"0"
Grid.Column
=
"1"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"Reference Material Type: "
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"1"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"{Binding Column2}"
Margin
=
"5,0,0,0"
Grid.Row
=
"1"
Grid.Column
=
"1"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"File Name: "
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"2"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"{Binding Column3}"
Margin
=
"5,0,0,0"
Grid.Row
=
"2"
Grid.Column
=
"1"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"Size: "
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"3"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"{Binding Column4}"
Margin
=
"5,0,0,0"
Grid.Row
=
"3"
Grid.Column
=
"1"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"Last Modified: "
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"4"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"{Binding Column5}"
Margin
=
"5,0,0,0"
Grid.Row
=
"4"
Grid.Column
=
"1"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"Editor: "
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"5"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
telerik:RadRichTextBox
x:Name
=
"editor"
Grid.Row
=
"5"
Grid.Column
=
"1"
Margin
=
"5"
AllowDrop
=
"True"
ShowComments
=
"False"
GotFocus
=
"editor_GotFocus"
LostFocus
=
"editor_LostFocus"
/>
</
Grid
>
</
telerik:RadTabItem
>
<!--<
telerik:RadTabItem
Header
=
"Referenced By"
>
<
Grid
Width
=
"Auto"
HorizontalAlignment
=
"Stretch"
Background
=
"Transparent"
Margin
=
"5"
>
<
Grid.RowDefinitions
>
<
RowDefinition
Height
=
"20"
/>
<
RowDefinition
Height
=
"20"
/>
<
RowDefinition
Height
=
"20"
/>
<
RowDefinition
Height
=
"20"
/>
<
RowDefinition
Height
=
"20"
/>
</
Grid.RowDefinitions
>
<
Grid.ColumnDefinitions
>
<
ColumnDefinition
Width
=
"*"
/>
</
Grid.ColumnDefinitions
>
<
TextBlock
Text
=
"Item 1"
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"0"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"Item 2 "
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"1"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"Item 3 "
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"2"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"Item 4"
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"3"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
<
TextBlock
Text
=
"Item 4"
Margin
=
"5,0,0,0"
FontWeight
=
"Bold"
Grid.Row
=
"4"
Grid.Column
=
"0"
VerticalAlignment
=
"Center"
HorizontalAlignment
=
"Left"
/>
</
Grid
>
</
telerik:RadTabItem
>-->
</
telerik:RadTabControl
>
</
Border
>
</
Grid
>
</
UserControl
>
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Data;
using
System.Windows.Documents;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Imaging;
using
System.Windows.Navigation;
using
System.Windows.Shapes;
using
Telerik.Windows.Controls;
namespace
DockingExample
{
/// <summary>
/// Interaction logic for GridDetailRowInfo.xaml
/// </summary>
public
partial
class
GridDetailRowInfo : UserControl
{
readonly
RadRibbonView _ribbonView;
readonly
RadRibbonContextualGroup _contextualGroup;
readonly
RadRibbonTab _contextualTabView;
private
readonly
RadRibbonTab _orginalRibbonTab;
public
GridDetailRowInfo()
{
InitializeComponent();
_ribbonView = MainWindow.radRibbonView2;
_contextualTabView = MainWindow.editingTab;
_contextualTabView.DataContext = editor.Commands;
_contextualGroup = _ribbonView.ContextualGroups.First(@group => @group.Name ==
"CommentEditing"
);
if
(_orginalRibbonTab ==
null
)
_orginalRibbonTab = _ribbonView.SelectedTab;
Telerik.Windows.Documents.Model.PointF location =
this
.editor.Document.CaretPosition.Location;
this
.editor.Document.CaretPosition.SetPosition(location);
}
private
void
editor_GotFocus(
object
sender, RoutedEventArgs e)
{
TurnContextualTabOn();
}
private
void
editor_LostFocus(
object
sender, RoutedEventArgs e)
{
RadRichTextBox richTextBox = (RadRichTextBox)sender;
if
(richTextBox.IsKeyboardFocusWithin)
{
return
;
}
TurnContextualTabOff();
}
private
void
TurnContextualTabOn()
{
if
(_contextualGroup.IsActive ==
false
)
{
_contextualTabView.DataContext = editor.Commands;
_contextualGroup.IsActive =
true
;
}
}
private
void
TurnContextualTabOff()
{
if
(_contextualGroup.IsActive)
_contextualGroup.IsActive =
false
;
if
(_orginalRibbonTab !=
null
)
_orginalRibbonTab.IsSelected =
true
;
}
}
}
Your first problem is a known issue and it has been fixed in the latest (Q1 2012) version of the controls so obtaining it should help you.
Regarding your second problem, we managed to reproduce this issue with the code you provided.
Unfortunately we couldn't manage to find a workaround, but will add it to our bug list and will try to resolve it for the next release.
For any other questions do not hesitate to contact us again.
All the best,
Martin
the Telerik team
(major)
When I double click inside the richtextbox I get the following error.
Unable to cast object of type 'System.Windows.Documents.Run' to type 'System.Windows.FrameworkElement'.
We also noticed this issue thanks to the code and the sample project you have attached.
We have logged it and will look for a solution to the problem. We will get back to if we come to workaround.
Iva Toteva
the Telerik team