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);
            }
        }
示例#2
0
 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);
         }
     }
 }
示例#3
0
 private TracksMenu GetTracksMenu(TrackType trackType)
 {
     return(TracksMenus.TryGetValue(trackType, out TracksMenu tracksMenu) ? tracksMenu : null);
 }