После еще одного осмотра на форуме Telerik я нашел решение, которое очень близко подходит к тому, что мне нужно. Жаль только, что нет решения для чего-то подобного. Я не могу себе представить, что нет необходимости одновременно закрывать все функции и закрывать вкладки.
Здесь указан источник, на котором я основал свое решение: Определить источник закрытия
Вот решение, которое я составил:
Сначала я реализовал logi c, упомянутый в ссылке выше, для предварительного просмотра при закрытии, чтобы установить флаг, который означает, что группа была нажата кнопка или нет:
private void RadDocking_OnPreviewClose(object sender, StateChangeEventArgs e)
{
RadPane pane = e.Panes.ToList()[0];
Point pt = Mouse.GetPosition(pane);
if (pt.X <= pane.ActualWidth)
{
_groupClosing = false;
}
else
{
_groupClosing = true;
}
}
После этого я просто проверяю флаг в методе закрытия для обработки различных логик
private void RadDocking_OnClose(object sender, StateChangeEventArgs e)
{
if (!_groupClosing)
{
_regionManager.GetRegion(Constants.MainRegion).Remove(e.Panes.First().Content);
}
else
{
_regionManager.GetRegion(Constants.MainRegion).RemoveAll();
}
}
Надеюсь, что это поможет другим в их поисках аналогичной проблемы.