Создание собственных кнопок прокрутки - проблема?
Если нет, вы можете создать ItemsControl, в стиле установите для ItemsPanel значение
<ItemsPanelTemplate x:Key="ItemsPanelStyle">
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
и в ControlTemplate ItemsControl
<ScrollViewer
x:Name="PART_ScrollViewer"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden"
CanContentScroll="True"
>
<ItemsPresenter/>
</ScrollViewer>
ваши кнопки панели инструментов будут фактическим ItemsSource этого ItemsControl. Если вы сейчас создаете кнопку в шаблоне (прокрутка вправо, нужная кнопка прокрутки) и по ее команде вы выполняете
ScrollViewer myViewer = GetTemplatedPart("PART_ScrollViewer");
if(myViewer != null)
{
myViewer.LineRight();
}
это должно прокрутить каждый элемент вправо до конца списка кнопок (обратите внимание на преимущество: независимо от ширины элемента).
То же самое вы можете сделать слева.
HTH, Даниэль