Вы можете изменить Toolbar.OverflowMode для выбранного элемента на OverflowMode.Never
и Toolbar.OverflowMode других элементов в OverflowMode.Always
Пример:
<ToolBar Width="80" HorizontalAlignment="Left" VerticalAlignment="Top">
<Button Name="btn1" ToolBar.OverflowMode="Never" Click="btn1_Click">Button 1</Button>
<Button Name="btn2" ToolBar.OverflowMode="Always" Click="btn2_Click">Button 2</Button>
<Button Name="btn3" ToolBar.OverflowMode="Always" Click="btn3_Click">Button 3</Button>
</ToolBar>
private void btn1_Click(object sender, RoutedEventArgs e)
{
ToolBar.SetOverflowMode(btn1, OverflowMode.Never);
ToolBar.SetOverflowMode(btn2, OverflowMode.Always);
ToolBar.SetOverflowMode(btn3, OverflowMode.Always);
}
private void btn2_Click(object sender, RoutedEventArgs e)
{
ToolBar.SetOverflowMode(btn1, OverflowMode.Always);
ToolBar.SetOverflowMode(btn2, OverflowMode.Never);
ToolBar.SetOverflowMode(btn3, OverflowMode.Always);
}
private void btn3_Click(object sender, RoutedEventArgs e)
{
ToolBar.SetOverflowMode(btn3, OverflowMode.Never);
ToolBar.SetOverflowMode(btn1, OverflowMode.Always);
ToolBar.SetOverflowMode(btn2, OverflowMode.Always);
}
Более общий способ сделать это:
UIElement element = sender as UIElement;
if (element != null)
{
ToolBar.SetOverflowMode(element, OverflowMode.Never);
foreach (var child in toolbar.Items)
{
if (child is UIElement && child != element)
{
ToolBar.SetOverflowMode((UIElement)child, OverflowMode.Always);
}
}
}