Nie wiem jak załącznik będzie działać ale znalazłem już pewne rozwiązanie ;) na razie jest one wizualne bez przypisania żadnych akcji.
Tutaj wrzucę przykładowy kod. W zależności od widoku okna czyli UC ribbon się zmienia. W innym temacie mam napisaną klasę która odpowiada za zmianę widoku jakby ktoś chciał.
WPF UC interface
<UserControl x:Class="xxxxx.UC_LoadCustomer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:xxxxxxxx.View"
mc:Ignorable="d"
xmlns:Custom="http://schemas.microsoft.com/winfx/2006/xaml/presentation/ribbon"
d:DesignHeight="300" d:DesignWidth="580">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="140"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Custom:Ribbon Grid.Row="0"
x:Name="ribbon"
HorizontalAlignment="Stretch"
Height="140">
<Custom:Ribbon.ApplicationMenu>
<Custom:RibbonApplicationMenu >
<Custom:RibbonApplicationMenuItem Header="Start"
x:Name="RM_Start"
/>
<Custom:RibbonApplicationMenuItem Header="Wtyczki"
x:Name="RM_Wtyczki"
/>
<Custom:RibbonApplicationMenuItem Header="Ranking"
x:Name="RM_Ranking"
/>
<Custom:RibbonApplicationMenuItem Header="Przerwy"
x:Name="RM_Przerwy"
/>
<Custom:RibbonApplicationMenuItem Header="Idę Na przerwę"
x:Name="RM_IdNaPrzerwe"
/>
<Custom:RibbonApplicationMenuItem Header="Wyloguj"
x:Name="RM_Wyloguj"
/>
<Custom:RibbonApplicationMenuItem Header="Zakończ Dzień"
x:Name="RM_ZakonczDzien"
/>
</Custom:RibbonApplicationMenu>
</Custom:Ribbon.ApplicationMenu>
<Custom:RibbonTab Name="Tab_Linki"
Header="Linki"
VerticalAlignment="Top"
Margin="0,0,0,0"
Height="90">
<Custom:RibbonGroup Name="Przyciski"
Header="Przeglądarki otwieranie linków"
Width="200"
HorizontalAlignment="Center">
<Button Content="1-5"
Height="30"
Width="50"
Margin="1,2,5,2"
/>
<Button Content="6-10"
Height="30"
Width="50"
Margin="1,2,5,2"
/>
<Button Content="11-15"
Height="30"
Width="50"
Margin="1,2,5,2"
/>
<Button Content="16-..."
Height="30"
Width="50"
Margin="1,2,5,2"
/>
<Custom:RibbonButton Label="Wszystkie"
Margin="10,5,10,10"
Height="60"
Width="60"
LargeImageSource="Image\playall.png"
/>
</Custom:RibbonGroup>
<Custom:RibbonGroup Name="Linki"
Header="Operacje Na Linkach">
<Custom:RibbonButton Label="Podgląd"
Height="60"
Width="60"
LargeImageSource="Image\WebSearch.png"
/>
<Custom:RibbonButton Label="Podmień"
Height="60"
Width="60"
LargeImageSource="Image\WindowsInstallerError.png"
Click="RibbonButton_Click"
/>
</Custom:RibbonGroup>
<Custom:RibbonGroup Name="Kategorie"
Header="Kolejny Klient"
Width="240">
<Custom:RibbonButton Label="Kolejny Klient"
Height="80"
Width="110"
LargeImageSource="Image\Biznes.png"
Click="test"
/>
<Custom:RibbonButton Label="Kolejny Klient z : Kategoria(20)"
Height="80"
Width="110"
LargeImageSource="Image\categorycustomer.png"
Click="test"
/>
</Custom:RibbonGroup>
</Custom:RibbonTab>
</Custom:Ribbon>
<Grid Grid.Row="1"
Name="gr_PanelView"
Margin="0,0,0,0">
</Grid>
</Grid>
</UserControl>
Tak wiem nazwy elementów muszę sobie jeszcze pozmieniać. Lecz nie miałem na to zbyt dużo czasu zwłaszcza że musiałem zaprezentować podglądowe ribbony dla prawie ponad 18 widoków z różnymi właściwościami ;)