private void MultiPanelUI_OnChangedVisibility(BaseAdditionalUI ui) { if (ui.IsVisible) { VerifyIfShowSomething(); } }
private void AdditionalUI_OnChangedVisibility(BaseAdditionalUI addUI) { SimpleAdditionalUI simpleUI = addUI as SimpleAdditionalUI; if (addUI.IsVisible == true) { currentVisibleAdditionalUIs.Add(simpleUI); if (additionalUIAreExclusive == false) { return; } //Se i pannelli sono esclusivi nascondi gli altri. //Da notare che impostando i pannelli a non visibili, questo handler verrà richiamato, andando così nel blocco else. foreach (var sAddUI in additionalUIs) { if (sAddUI != simpleUI) { sAddUI.IsVisible = false; } } } else { bool wasVisible = currentVisibleAdditionalUIs.Remove(simpleUI); if (alwaysShowSomething == false) { return; } //Verifica se c'è ancora qualche pannello visibile con il tab/bottone/toggle visibile. if (additionalUIs.Exists(ui => ui.IsVisible) == false) { //Se il multipanel deve sempre mostrare almeno un pannello if (alwaysShowSomething) { //Click su un pannello già visibile quindi, //Reimposto a visibile quello appena cliccato (se ha ancora il tab/bottone/toggle visibile) //Altrimenti cerco il primo... if (wasVisible) { simpleUI.IsVisible = true; } else { additionalUIs.First()?.SetVisible(true); } } } } }