WPF利用ContextMenu实现右键菜单

 时间:2024-10-13 16:59:50

1、可以先详细了解下“WPF利用MediaElement编写视频播放器”。完成WPF实现自制视频播放器的创建,在此基础上实现制视频播放器增加右键菜单的功能。也可以打开VS,选择Visual C#模板创建一个新WPF应用程序,直接复制后续步骤中的的完整代码。

WPF利用ContextMenu实现右键菜单

2、在MainWindow.xaml页面中添加如下代码:<Window x:Class="稆糨孝汶;MyMedia.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="我的播放器-拖动文件执行" Height="350" Width="525" > <Grid > <MediaElement Name="mediaElement1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stretch="Fill" IsMuted="False" /> <Grid x:Name="GridDrag" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" AllowDrop="True" DragEnter="G_DragEnter" DragOver="G_DragOver" Background="#02FFFFFF" ContextMenuOpening="GridDrag_ContextMenuOpening" > <Grid.ContextMenu > <ContextMenu> <MenuItem Name="M视频" Header="选择视频文件(_O)" Click="M视频_Click" /> <Separator/> <MenuItem Name="M全屏" IsEnabled="False" Header="全屏"/> <Separator/> <MenuItem Name="M播放" IsEnabled="False" Header="播放" Click="M播放_Click" /> <MenuItem Name="M快进" IsEnabled="False" Header="快进"/> <Separator/> <MenuItem Name="M静音" IsEnabled="False" Header="静音" /> <MenuItem Name="M音量" IsEnabled="False" Header="音量+" /> <MenuItem Name="M音量2" IsEnabled="False" Header="音量-" /> </ContextMenu> </Grid.ContextMenu> </Grid> </Grid></Window>

WPF利用ContextMenu实现右键菜单

3、在MainWindow.xaml.cs页面中添加如下代码:using System挢旗扦渌;using System.Colle艘早祓胂ctions.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace MyMedia{ /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.mediaElement1.LoadedBehavior = MediaState.Manual; } private void G_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effects = DragDropEffects.All; else e.Effects = DragDropEffects.None; } bool mediaElement1Play = false; private void G_DragOver(object sender, DragEventArgs e) { string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false); this.mediaElement1.Source = new Uri(s[0]); mediaElement1.Play(); mediaElement1.Volume = 1; mediaElement1Play = true; } private void GridDrag_ContextMenuOpening(object sender, ContextMenuEventArgs e) { bool b = this.mediaElement1.HasVideo; int count = GridDrag.ContextMenu.Items.Count; for (int i = 1; i < count; i++) { MenuItem m = GridDrag.ContextMenu.Items[i] as MenuItem; if (m != null) m.IsEnabled = b; } if (this.mediaElement1Play) M播放.Header = "暂停"; else M播放.Header = "播放"; } private void M视频_Click(object sender, RoutedEventArgs e) { //这里我们可以采用拖动视频文件进行播放,该文主要讲解ContextMenu右键菜单的使用,为缩短文章篇幅,不增加代码。 } private void M播放_Click(object sender, RoutedEventArgs e) { if (this.mediaElement1Play) this.mediaElement1.Pause(); else this.mediaElement1.Play(); this.mediaElement1Play = !this.mediaElement1Play; } }}

WPF利用ContextMenu实现右键菜单

4、编译代码,生成解决方案。编译成功后,按F5执行。这时,我们可以移动鼠标到视频窗口中任意位置,点击鼠标右键,将弹出右键菜单。我们会发现很多菜单项是灰色不可执行的,这说明我们在WPF中实现了右键菜单功能。

WPF利用ContextMenu实现右键菜单

5、因为我们没有添加按钮打开视频功能,这里我们采用拖动一个可以播放的视频文件放置到软件窗口中,视频将开始自动播放。

WPF利用ContextMenu实现右键菜单

6、视频播放后,我们再点击鼠标右键,将弹出另一种样式的右键菜单,该右键菜单可以控制视频的暂停和播放了。

WPF利用ContextMenu实现右键菜单

7、以上5个步骤是WPF采用ContextMenu实现右键菜单的一个简单例子。该自制播放器实现了右键菜单打开时菜单样式显示控制,以及自制播放器的一个播放暂停控制,如果需要视频加载文件、全屏、快进、快退、静音等功能,则还需要增加其他代码。

  • 如何推广本地公众号
  • 凉拌构树穗怎么做?
  • 天气热怎么关心别人
  • 英文“结账”怎么说,要平常生活中说的(俚语)
  • 五大室内防辐射植物 准妈妈必备
  • 热门搜索
    教师节手抄报花边 我爱校园手抄报 关于三月三的手抄报 国庆70周年手抄报内容 有关禁毒的手抄报 猴年春节手抄报 大自然的启示手抄报 校园手抄报内容 少先队员手抄报图片 语文知识手抄报图片