2013-09-07 2 views
0

У меня есть приложение, которое показывает полноэкранный режим Flash Media, используя элемент управления AxShockwaveFlash.Событие захвата мыши в приложении, когда AxShockwaveFlash Full Screen

Мне нужно закрыть окно одним щелчком мыши, однако я не могу захватить щелчок мышью, когда элемент управления AxShockwaveFlash активен.

События Click and MouseDown не работают.

В моем приложении я попытался использовать события MouseDown в приложении, поддержка Grid и Control 'host', но никто не получил уведомление о событии click.

Поскольку другие области моего приложения отлично обрабатывают это событие, это должно быть управление вспышкой.

Код:

_flashHost = new System.Windows.Forms.Integration.WindowsFormsHost(); 
_axShockwaveFlash = new AxShockwaveFlashObjects.AxShockwaveFlash(); 
_flashHost.Child = _axShockwaveFlash; 

_flashHost.Margin = new Thickness(50, 0, 0, 0); 
this.FlashGrid.Children.Add(_flashHost); 
_axShockwaveFlash.BeginInit(); 
_axShockwaveFlash.CreateControl(); 
_axShockwaveFlash.Menu = false; 
_axShockwaveFlash.FlashVars = "start_volume=0"; 
_axShockwaveFlash.Movie = loadedMediaItem.LocalMediaFile.LocalPath; 
_axShockwaveFlash.Play(); 

XAML

<Window x:Class="CorporateScreenSaver.MediaContainerWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Media" Height="421" Width="600" ShowInTaskbar="False" Topmost="True" WindowState="Maximized" ResizeMode="NoResize" WindowStyle="None" Background="Black" Loaded="MainWindow_OnLoaded" MouseDown="MainWindow_OnMouseDown" KeyDown="MainWindow_OnKeyDown"> 
    <Grid Name="MediaGrid"> 
     <Grid Name="FlashGrid"></Grid> 
     <MediaElement Name="MediaViewPort"/> 
    </Grid> 
</Window> 

Как я могу получить захват события щелчка либо какой-то глобальный крючком или подписки на управление AxShockwaveFlash?

ответ

0

Кажется, единственный способ захватить щелчок мыши - использовать следующее.

http://globalmousekeyhook.codeplex.com/

работал очень хорошо.

using MouseKeyboardActivityMonitor; 
using MouseKeyboardActivityMonitor.WinApi; 
using MouseEventArgs = System.Windows.Forms.MouseEventArgs; 

private readonly MouseHookListener _mMouseHookManager; 


_mMouseHookManager = new MouseHookListener(new GlobalHooker()) {Enabled = true}; 
_mMouseHookManager.MouseDown += HookManager_MouseDown; 

 Смежные вопросы

  • Нет связанных вопросов^_^