WPF应用程序中的SwfPlayer:找不到Shockwave

时间:2014-04-09 15:20:43

标签: c# wpf flash

首先,我在Visual Studio C#2013 Express上使用C#/ XAML。 我今天为wpf应用程序中的swf播放器写道。我读了很多关于这个子图的讨论,但没人能解决我的问题。我使用PageSwitcher,每个页面都继承自UserControl类,我为目录中的每个.swf文件创建一个按钮。这工作很好。当我点击其中一个时,我想打开一个新的页面,它是swf查看器。我可以打开一个新页面,但我的pdf查看器不起作用。我尝试了很多方法来解决我的问题,但没有任何效果。我有一个WinForm应用程序做我想要的,但我不能在我的WPF应用程序中添加它我尝试WindowsFormHost但我仍然有相同的错误:未找到类型或命名空间'AxShockwaveFlashObjects',而我添加了AxInterop.ShockwaveFlashObjects。 dll和/或Interop.ShockwaveFlashObjects.dll

这是我的代码: XAML

<UserControl x:Class="WPFPageSwitch.swf"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"
    mc:Ignorable="d">

    <Grid x:Name="Container">

    </Grid>
</UserControl>

C#

namespace WPFPageSwitch
{
    public partial class swf : System.Windows.Controls.UserControl, ISwitchable
    {
        public swf(string swf)
        {
            InitializeComponent();

            System.Windows.Forms.Integration.WindowsFormsHost swfPlayer = new System.Windows.Forms.Integration.WindowsFormsHost();

            AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlash = new AxShockwaveFlashObjects.AxShockwaveFlash();

            swfPlayer.Child = axShockwaveFlash;

            Container.Children.Add(swfPlayer);
        }

    }
}

有人可以帮助我吗? 错误在这里:AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlash = new AxShockwaveFlashObjects.AxShockwaveFlash();

1 个答案:

答案 0 :(得分:0)

添加对它的引用。 AxShockwaveFlashObjects是一个COM库,允许您将Flash内容集成到.NET应用程序中。演示Here