У меня есть TabControl, который может содержать TabControl в каждом TabItem. Есть xaml-код:
<TabControl Height="300" Width="500" MouseWheel="TabControl_MouseWheel">
<TabItem Header="1" Width="50">
<TabControl MouseWheel="TabControl_MouseWheel">
<TabItem Header="1" Width="50"></TabItem>
<TabItem Header="2" Width="50"></TabItem>
<TabItem Header="3" Width="50"></TabItem>
<TabItem Header="4" Width="50"></TabItem>
<TabItem Header="5" Width="50"></TabItem>
<TabItem Header="6" Width="50"></TabItem>
<TabItem Header="7" Width="50"></TabItem>
<TabItem Header="8" Width="50"></TabItem>
<TabItem Header="9" Width="50"></TabItem>
</TabControl>
</TabItem>
<TabItem Header="2" Width="50">
<TabControl MouseWheel="TabControl_MouseWheel">
<TabItem Header="1" Width="50"></TabItem>
<TabItem Header="2" Width="50"></TabItem>
<TabItem Header="3" Width="50"></TabItem>
<TabItem Header="4" Width="50"></TabItem>
<TabItem Header="5" Width="50"></TabItem>
<TabItem Header="6" Width="50"></TabItem>
<TabItem Header="7" Width="50"></TabItem>
<TabItem Header="8" Width="50"></TabItem>
<TabItem Header="9" Width="50"></TabItem>
</TabControl>
</TabItem>
<TabItem Header="3" Width="50"></TabItem>
<TabItem Header="4" Width="50"></TabItem>
<TabItem Header="5" Width="50"></TabItem>
<TabItem Header="6" Width="50"></TabItem>
<TabItem Header="7" Width="50"></TabItem>
<TabItem Header="8" Width="50"></TabItem>
<TabItem Header="9" Width="50"></TabItem>
</TabControl>
Я хочу изменить выбранный элемент управления вкладками с помощью мыши. Есть обработчик события MouseWheel:
private void TabControl_MouseWheel(object sender, MouseWheelEventArgs e)
{
TabControl tabControl = sender as TabControl;
if (tabControl != null)
{
if (e.Delta < 0)
{
if (tabControl.SelectedIndex + 1 < tabControl.Items.Count)
tabControl.SelectedItem = tabControl.Items[tabControl.SelectedIndex + 1];
}
else
{
if (tabControl.SelectedIndex - 1 > -1)
tabControl.SelectedItem = tabControl.Items[tabControl.SelectedIndex - 1];
}
}
}
Проблема в том, что прокрутка с помощью мыши просто изменяет выбранный элемент в верхнем TabControl. Я хочу, чтобы другие TabControl тоже реагировали на вращение мыши.
Например: если курсор находится в одном из верхних элементов TabControl, я хочу, чтобы они реагировали на прокрутку колесика мыши, в противном случае я хочу, чтобы нижние элементы TabControls реагировали на прокрутку.