У меня есть два RichEditControls и одна автоматически сгенерированная лента.
Чтобы использовать ленту для обоих элементов управления, я сделал следующее (под руководством это предложение):
<dxre:RichEditControlProvider x:Name = "recp" />Это мой XAML.CS
public TaskView()
{
InitializeComponent();
richEditControl1.GotFocus += RichEditControl1OnGotFocus;
richEditControl2.GotFocus += RichEditControl2OnGotFocus;
}
private void RichEditControl1OnGotFocus(object sender, RoutedEventArgs routedEventArgs)
{
recp.RichEditControl = richEditControl1;
richEditControl2.BarManager = null;
richEditControl1.BarManager = barManager1;
}
private void RichEditControl2OnGotFocus(object sender, RoutedEventArgs routedEventArgs)
{
recp.RichEditControl = richEditControl2;
richEditControl1.BarManager = null;
richEditControl2.BarManager = barManager1;
}
Это позволяет мне использовать ленту и для второго RichEditControl.
Теперь моя проблема заключается в том, что есть необязательные возможности редактирования таблиц RibbonPages и редактирования изображений, которые отображаются только при выборе таблицы или изображения. К сожалению, они не синхронизируются с выбранным RichEditControl, поэтому я могу использовать их только для первого элемента управления.
Это автоматически сгенерированный код XAML для страниц редактирования изображений:
Лента:
<dxr:RibbonPageCategory x:Name = "catPictureTools"
Caption = "{Binding ConverterParameter=Caption_PageCategoryFloatingObjectPictureTools, Converter = {StaticResource stringIdConverter}, Mode=OneTime, Source = {StaticResource stringIdConverter}}"
dxre:AttachedCommand.Command = "{Binding ToolsFloatingPictureCommandGroup, Mode=OneTime, Source = {StaticResource commands}}">
<dxr:RibbonPage x:Name = "pagePictureToolsFormat"
Caption = "{Binding ConverterParameter=Caption_PageFloatingObjectPictureToolsFormat, Converter = {StaticResource stringIdConverter}, Mode=OneTime, Source = {StaticResource stringIdConverter}}">
<dxr:RibbonPageGroup x:Name = "grpPictureToolsFormatShapeStyles"
Caption = "{Binding ConverterParameter=Caption_GroupFloatingPictureToolsShapeStyles, Converter = {StaticResource stringIdConverter}, Mode=OneTime, Source = {StaticResource stringIdConverter}}"
ShowCaptionButton = "False">
<dxr:RibbonPageGroup.ItemLinks>
<dxr:BarButtonGroupLink BarItemName = "biShapeColors" />
<dxr:BarButtonGroupLink BarItemName = "biShapeOutlineWeight" />
</dxr:RibbonPageGroup.ItemLinks>
</dxr:RibbonPageGroup>
<dxr:RibbonPageGroup x:Name = "grpPictureToolsFormatArrange"
Caption = "{Binding ConverterParameter=Caption_GroupFloatingPictureToolsArrange, Converter = {StaticResource stringIdConverter}, Mode=OneTime, Source = {StaticResource stringIdConverter}}"
ShowCaptionButton = "False">
<dxr:RibbonPageGroup.ItemLinks>
<dxb:BarSubItemLink BarItemName = "biPictureWrapText" />
<dxb:BarSubItemLink BarItemName = "biPicturePosition" />
<dxb:BarSubItemLink BarItemName = "biPictureBringForwardPlaceholder" />
<dxb:BarSubItemLink BarItemName = "biPictureSendBackwardPlaceholder" />
</dxr:RibbonPageGroup.ItemLinks>
</dxr:RibbonPageGroup>
</dxr:RibbonPage>
</dxr:RibbonPageCategory>
БарПредметы:
<dxr:BarButtonGroup x:Name = "biShapeColors">
<dxr:BarButtonGroup.ItemLinks>
<dxre:BarSplitButtonColorEditItemLink BarItemName = "biPictureShapeFillColor" />
<dxre:BarSplitButtonColorEditItemLink BarItemName = "biPictureShapeOutlineColor" />
</dxr:BarButtonGroup.ItemLinks>
</dxr:BarButtonGroup>
<dxre:BarSplitButtonColorEditItem x:Name = "biPictureShapeFillColor"
Command = "{Binding PictureShapeFillColor, Mode=OneTime, Source = {StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit EditValue = "{Binding EditValue, ElementName=biPictureShapeFillColor, Mode=TwoWay}"
ShowDefaultColorButton = "False"
ShowNoColorButton = "True"
ShowBorder = "False" />
</dxb:PopupControlContainerInfo>
</dxre:BarSplitButtonColorEditItem>
<dxre:BarSplitButtonColorEditItem x:Name = "biPictureShapeOutlineColor"
Command = "{Binding PictureShapeOutlineColor, Mode=OneTime, Source = {StaticResource commands}}">
<dxb:PopupControlContainerInfo>
<dxe:ColorEdit EditValue = "{Binding EditValue, ElementName=biPictureShapeOutlineColor, Mode=TwoWay}"
ShowDefaultColorButton = "False"
ShowNoColorButton = "True"
ShowBorder = "False" />
</dxb:PopupControlContainerInfo>
</dxre:BarSplitButtonColorEditItem>
<dxr:BarButtonGroup x:Name = "biShapeOutlineWeight">
<dxr:BarButtonGroup.ItemLinks>
<dxb:BarEditItemLink BarItemName = "biPictureShapeOutlineWeight" />
</dxr:BarButtonGroup.ItemLinks>
</dxr:BarButtonGroup>
<dxb:BarEditItem x:Name = "biPictureShapeOutlineWeight"
Content = ""
Command = "{Binding PictureShapeOutlineWeight, Mode=OneTime, Source = {StaticResource commands}}"
EditWidth = "150">
<dxb:BarEditItem.EditSettings>
<dxre:RichEditBorderLineWidthEditSettings RichEditControl = "{Binding ElementName=richEditControl1}" />
</dxb:BarEditItem.EditSettings>
</dxb:BarEditItem>
<dxb:BarSubItem x:Name = "biPictureWrapText"
Command = "{Binding PictureWrapText, Mode=OneTime, Source = {StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarCheckItemLink BarItemName = "biPictureWrapTextSquare" />
<dxb:BarCheckItemLink BarItemName = "biPictureWrapTextTight" />
<dxb:BarCheckItemLink BarItemName = "biPictureWrapTextThrough" />
<dxb:BarCheckItemLink BarItemName = "biPictureWrapTextTopAndBottom" />
<dxb:BarCheckItemLink BarItemName = "biPictureWrapTextBehind" />
<dxb:BarCheckItemLink BarItemName = "biPictureWrapTextInFrontOf" />
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarCheckItem x:Name = "biPictureWrapTextSquare"
Command = "{Binding PictureWrapTextSquare, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarCheckItem x:Name = "biPictureWrapTextTight"
Command = "{Binding PictureWrapTextTight, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarCheckItem x:Name = "biPictureWrapTextThrough"
Command = "{Binding PictureWrapTextThrough, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarCheckItem x:Name = "biPictureWrapTextTopAndBottom"
Command = "{Binding PictureWrapTextTopAndBottom, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarCheckItem x:Name = "biPictureWrapTextBehind"
Command = "{Binding PictureWrapTextBehind, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarCheckItem x:Name = "biPictureWrapTextInFrontOf"
Command = "{Binding PictureWrapTextInFrontOf, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarSubItem x:Name = "biPicturePosition"
Command = "{Binding PicturePosition, Mode=OneTime, Source = {StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName = "biPictureTopLeftAlignment" />
<dxb:BarButtonItemLink BarItemName = "biPictureTopCenterAlignment" />
<dxb:BarButtonItemLink BarItemName = "biPictureTopRightAlignment" />
<dxb:BarButtonItemLink BarItemName = "biPictureMiddleLeftAlignment" />
<dxb:BarButtonItemLink BarItemName = "biPictureMiddleCenterAlignment" />
<dxb:BarButtonItemLink BarItemName = "biPictureMiddleRightAlignment" />
<dxb:BarButtonItemLink BarItemName = "biPictureBottomLeftAlignment" />
<dxb:BarButtonItemLink BarItemName = "biPictureBottomCenterAlignment" />
<dxb:BarButtonItemLink BarItemName = "biPictureBottomRightAlignment" />
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name = "biPictureTopLeftAlignment"
Command = "{Binding PictureTopLeftAlignment, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureTopCenterAlignment"
Command = "{Binding PictureTopCenterAlignment, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureTopRightAlignment"
Command = "{Binding PictureTopRightAlignment, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureMiddleLeftAlignment"
Command = "{Binding PictureMiddleLeftAlignment, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureMiddleCenterAlignment"
Command = "{Binding PictureMiddleCenterAlignment, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureMiddleRightAlignment"
Command = "{Binding PictureMiddleRightAlignment, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureBottomLeftAlignment"
Command = "{Binding PictureBottomLeftAlignment, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureBottomCenterAlignment"
Command = "{Binding PictureBottomCenterAlignment, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureBottomRightAlignment"
Command = "{Binding PictureBottomRightAlignment, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarSubItem x:Name = "biPictureBringForwardPlaceholder"
Command = "{Binding PictureBringForwardPlaceholder, Mode=OneTime, Source = {StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName = "biPictureBringForward" />
<dxb:BarButtonItemLink BarItemName = "biPictureBringToFront" />
<dxb:BarButtonItemLink BarItemName = "biPictureBringInFrontOfText" />
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name = "biPictureBringForward"
Command = "{Binding PictureBringForward, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureBringToFront"
Command = "{Binding PictureBringToFront, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureBringInFrontOfText"
Command = "{Binding PictureBringInFrontOfText, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarSubItem x:Name = "biPictureSendBackwardPlaceholder"
Command = "{Binding PictureSendBackwardPlaceholder, Mode=OneTime, Source = {StaticResource commands}}">
<dxb:BarSubItem.ItemLinks>
<dxb:BarButtonItemLink BarItemName = "biPictureSendBackward" />
<dxb:BarButtonItemLink BarItemName = "biPictureSendToBack" />
<dxb:BarButtonItemLink BarItemName = "biPictureSendBehindText" />
</dxb:BarSubItem.ItemLinks>
</dxb:BarSubItem>
<dxb:BarButtonItem x:Name = "biPictureSendBackward"
Command = "{Binding PictureSendBackward, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureSendToBack"
Command = "{Binding PictureSendToBack, Mode=OneTime, Source = {StaticResource commands}}" />
<dxb:BarButtonItem x:Name = "biPictureSendBehindText"
Command = "{Binding PictureSendBehindText, Mode=OneTime, Source = {StaticResource commands}}" />





Похоже, я нашел ответ. Когда я задал свой вопрос, я еще не сделал шаги 5 и 6. Также код отсутствовал в коде программной части.
Если вы хотите иметь несколько RichEditControls с одной лентой, выполните следующие действия:

Binding ElementName=richEditControl1 на Binding Path=RichEditControl, ElementName=richEditControlProvider1 или как там называются ваш первый RichEditControl и ваш RichEditControlProvider.BarManager и Ribbon вашего richEditControl1.Код позади:
public MyView()
{
InitializeComponent();
richEditControl1.GotFocus += RichEditControl1OnGotFocus;
richEditControl2.GotFocus += RichEditControl2OnGotFocus;
RichEditControl1OnGotFocus(null, null);
}
private void RichEditControl1OnGotFocus(object sender, RoutedEventArgs routedEventArgs)
{
richEditControlProvider1.RichEditControl = richEditControl1;
richEditControl1.Ribbon = ribbonControl1;
richEditControl2.Ribbon = null;
richEditControl1.BarManager = barManager1;
richEditControl2.BarManager = null;
}
private void RichEditControl2OnGotFocus(object sender, RoutedEventArgs routedEventArgs)
{
richEditControlProvider1.RichEditControl = richEditControl2;
richEditControl1.Ribbon = null;
richEditControl2.Ribbon = ribbonControl1;
richEditControl1.BarManager = null;
richEditControl2.BarManager = barManager1;
}