private void TrackMenuItem_Click(object sender, RoutedEventArgs e) { var menu = TracksMenus.FirstOrDefault(kvp => kvp.Value.MenuFlyout.Items.Contains(sender)); if (!menu.Equals(default(KeyValuePair <TrackType, TracksMenu>))) { foreach (var item in menu.Value.MenuFlyout.Items) { if (item is ToggleMenuFlyoutItem) { ((ToggleMenuFlyoutItem)item).IsChecked = (item == sender); } } MediaElement.SetTrack(menu.Key, (int?)((MenuFlyoutItemBase)sender).Tag); } }
private void AddTracksMenu(string trackMenuName, TrackType trackType, string availableStateName, string unavailableStateName, bool addNoneItem = false) { if (GetTemplateChild(trackMenuName) is MenuFlyout menu) { var tracksMenu = new TracksMenu() { MenuFlyout = menu, AvailableStateName = availableStateName, UnavailableStateName = unavailableStateName, HasNoneItem = addNoneItem }; TracksMenus.Add(trackType, tracksMenu); if (addNoneItem) { AddNoneItem(tracksMenu); } } }
private TracksMenu GetTracksMenu(TrackType trackType) { return(TracksMenus.TryGetValue(trackType, out TracksMenu tracksMenu) ? tracksMenu : null); }