I have a number of buttons that switch the application page. The buttons have 2 states, pressed and not, for each state the Menu style is implemented - normal and MenuIn - pressed (that is, the user has this page open now). In styles, only the color changes.
Now I have each button attached to a handler, which with the help of a switch , by the name of the button performs the necessary actions, namely, opens the desired page, sets all MenuIn buttons to the Menu style and sets the MenuIn button of the current section. As a result, I get a huge footcloth of duplicate rows.
How to competently shorten the code, maybe in the style of how to determine whether the button is pressed or not, maybe something else?
private void ButtonEvent(string name) { switch (name) { case "ChangeBg": BackgroundEvent.Restart(); break; case "HomeBtn": HomeBtn.Style = (Style) Application.Current.Resources["MenuIn"]; NewsBtn.Style = (Style) Application.Current.Resources["Menu"]; AlertsBtn.Style = (Style) Application.Current.Resources["Menu"]; InvasionsBtn.Style = (Style) Application.Current.Resources["Menu"]; SettingsBtn.Style = (Style) Application.Current.Resources["Menu"]; InfoBtn.Style = (Style) Application.Current.Resources["Menu"]; TradeBtn.Style = (Style) Application.Current.Resources["Menu"]; ActMissionsBtn.Style = (Style) Application.Current.Resources["Menu"]; MainFrame.Navigate(new Uri("View/HomePage.xaml", UriKind.Relative)); break; case "NewsBtn": HomeBtn.Style = (Style) Application.Current.Resources["Menu"]; NewsBtn.Style = (Style) Application.Current.Resources["MenuIn"]; AlertsBtn.Style = (Style) Application.Current.Resources["Menu"]; InvasionsBtn.Style = (Style) Application.Current.Resources["Menu"]; SettingsBtn.Style = (Style) Application.Current.Resources["Menu"]; InfoBtn.Style = (Style) Application.Current.Resources["Menu"]; TradeBtn.Style = (Style) Application.Current.Resources["Menu"]; ActMissionsBtn.Style = (Style) Application.Current.Resources["Menu"]; //MyPopup.IsOpen = true; MainFrame.Navigate(new Uri("View/NewsPage.xaml", UriKind.Relative)); break; case "AlertsBtn": HomeBtn.Style = (Style) Application.Current.Resources["Menu"]; NewsBtn.Style = (Style) Application.Current.Resources["Menu"]; AlertsBtn.Style = (Style) Application.Current.Resources["MenuIn"]; InvasionsBtn.Style = (Style) Application.Current.Resources["Menu"]; SettingsBtn.Style = (Style) Application.Current.Resources["Menu"]; InfoBtn.Style = (Style) Application.Current.Resources["Menu"]; TradeBtn.Style = (Style) Application.Current.Resources["Menu"]; ActMissionsBtn.Style = (Style) Application.Current.Resources["Menu"]; //MyPopup.IsOpen = false; //BodyFrame.Navigate(new Uri("Pages/AlertsPage.xaml", UriKind.Relative)); break; case "TradeBtn": HomeBtn.Style = (Style) Application.Current.Resources["Menu"]; NewsBtn.Style = (Style) Application.Current.Resources["Menu"]; AlertsBtn.Style = (Style) Application.Current.Resources["Menu"]; InvasionsBtn.Style = (Style) Application.Current.Resources["Menu"]; SettingsBtn.Style = (Style) Application.Current.Resources["Menu"]; InfoBtn.Style = (Style) Application.Current.Resources["Menu"]; TradeBtn.Style = (Style) Application.Current.Resources["MenuIn"]; ActMissionsBtn.Style = (Style) Application.Current.Resources["Menu"]; //BodyFrame.Navigate(new Uri("Pages/TradePage.xaml", UriKind.Relative)); break; case "InvasionsBtn": HomeBtn.Style = (Style) Application.Current.Resources["Menu"]; NewsBtn.Style = (Style) Application.Current.Resources["Menu"]; AlertsBtn.Style = (Style) Application.Current.Resources["Menu"]; InvasionsBtn.Style = (Style) Application.Current.Resources["MenuIn"]; SettingsBtn.Style = (Style) Application.Current.Resources["Menu"]; InfoBtn.Style = (Style) Application.Current.Resources["Menu"]; TradeBtn.Style = (Style) Application.Current.Resources["Menu"]; ActMissionsBtn.Style = (Style) Application.Current.Resources["Menu"]; //BodyFrame.Navigate(new Uri("Pages/InvasionsPage.xaml", UriKind.Relative)); break; case "InfoBtn": HomeBtn.Style = (Style) Application.Current.Resources["Menu"]; NewsBtn.Style = (Style) Application.Current.Resources["Menu"]; AlertsBtn.Style = (Style) Application.Current.Resources["Menu"]; InvasionsBtn.Style = (Style) Application.Current.Resources["Menu"]; SettingsBtn.Style = (Style) Application.Current.Resources["Menu"]; InfoBtn.Style = (Style) Application.Current.Resources["MenuIn"]; TradeBtn.Style = (Style) Application.Current.Resources["Menu"]; ActMissionsBtn.Style = (Style) Application.Current.Resources["Menu"]; //BodyFrame.Navigate(new Uri("Pages/InfoPage.xaml", UriKind.Relative)); break; case "SettingsBtn": HomeBtn.Style = (Style) Application.Current.Resources["Menu"]; NewsBtn.Style = (Style) Application.Current.Resources["Menu"]; AlertsBtn.Style = (Style) Application.Current.Resources["Menu"]; InvasionsBtn.Style = (Style) Application.Current.Resources["Menu"]; InfoBtn.Style = (Style) Application.Current.Resources["Menu"]; SettingsBtn.Style = (Style) Application.Current.Resources["MenuIn"]; TradeBtn.Style = (Style) Application.Current.Resources["Menu"]; ActMissionsBtn.Style = (Style) Application.Current.Resources["Menu"]; //BodyFrame.Navigate(new Uri("Pages/SettingsPage.xaml", UriKind.Relative)); break; case "ActMissionsBtn": HomeBtn.Style = (Style) Application.Current.Resources["Menu"]; NewsBtn.Style = (Style) Application.Current.Resources["Menu"]; AlertsBtn.Style = (Style) Application.Current.Resources["Menu"]; InvasionsBtn.Style = (Style) Application.Current.Resources["Menu"]; InfoBtn.Style = (Style) Application.Current.Resources["Menu"]; SettingsBtn.Style = (Style) Application.Current.Resources["Menu"]; TradeBtn.Style = (Style) Application.Current.Resources["Menu"]; ActMissionsBtn.Style = (Style) Application.Current.Resources["MenuIn"]; //BodyFrame.Navigate(new Uri("Pages/ActiveMissionsPage.xaml", UriKind.Relative)); break; } } 
HomeBtn.Style = (Style) Application.Current.Resources[name == "HomeBtn" ? "MenuIn" : "Menu"];- PetSerAl