在WPF应用程序中嵌入Flash

在WPF应用程序中嵌入Flash,wpf,vb.net,flash,Wpf,Vb.net,Flash,好的,所以我很难在WPF应用程序中嵌入Flash动画。我尝试了很多事情,但只有一件对我有效 我找到了一个解决方案,所以我将在下面发布。我找到了解决方案,我遵循了本教程,将C#转换为VB: 但在最后,我最终只得到了30行代码来完成我一开始想要做的事情 以下是WinForm用户控件WFFlashPlayer.vb中的代码: Imports System.Windows.Forms Namespace FlashAxControls Partial Public Class WFFlashP

好的,所以我很难在WPF应用程序中嵌入Flash动画。我尝试了很多事情,但只有一件对我有效


我找到了一个解决方案,所以我将在下面发布。

我找到了解决方案,我遵循了本教程,将C#转换为VB:

但在最后,我最终只得到了30行代码来完成我一开始想要做的事情

以下是WinForm用户控件WFFlashPlayer.vb中的代码:

Imports System.Windows.Forms

Namespace FlashAxControls
    Partial Public Class WFFlashPlayer
        Inherits UserControl
        Public Sub New()
            InitializeComponent()
            AxShockwaveFlash.Base = "#"
            AxShockwaveFlash.Movie = "#"
        End Sub
    End Class
End Namespace
Namespace FlashAxControls
    Partial Class WFFlashPlayer
        ''' <summary> 
        ''' Required designer variable.
        ''' </summary>
        Private components As System.ComponentModel.IContainer = Nothing

        ''' <summary> 
        ''' Clean up any resources being used.
        ''' </summary>
        ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        Protected Overrides Sub Dispose(disposing As Boolean)
            If disposing AndAlso (components IsNot Nothing) Then
                components.Dispose()
            End If
            MyBase.Dispose(disposing)
        End Sub

#Region "Component Designer generated code"

        ''' <summary> 
        ''' Required method for Designer support - do not modify 
        ''' the contents of this method with the code editor.
        ''' </summary>
        Private Sub InitializeComponent()
            Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(WFFlashPlayer))
            Me.AxShockwaveFlash = New AxShockwaveFlashObjects.AxShockwaveFlash()
            CType(Me.AxShockwaveFlash, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'AxShockwaveFlash
            '
            Me.AxShockwaveFlash.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
            Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
            Me.AxShockwaveFlash.Enabled = True
            Me.AxShockwaveFlash.Location = New System.Drawing.Point(0, 0)
            Me.AxShockwaveFlash.Margin = New System.Windows.Forms.Padding(0)
            Me.AxShockwaveFlash.Name = "AxShockwaveFlash"
            Me.AxShockwaveFlash.OcxState = CType(resources.GetObject("AxShockwaveFlash.OcxState"), System.Windows.Forms.AxHost.State)
            Me.AxShockwaveFlash.Size = New System.Drawing.Size(1125, 825)
            Me.AxShockwaveFlash.TabIndex = 0
            '
            'WFFlashPlayer
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(239, Byte), Integer), CType(CType(239, Byte), Integer), CType(CType(242, Byte), Integer))
            Me.Controls.Add(Me.SimpleButton1)
            Me.Controls.Add(Me.AxShockwaveFlash)
            Me.Name = "WFFlashPlayer"
            Me.Size = New System.Drawing.Size(1125, 825)
            CType(Me.AxShockwaveFlash, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)
        End Sub

#End Region

        Private AxShockwaveFlash As AxShockwaveFlashObjects.AxShockwaveFlash
    End Class
End Namespace
<UserControl x:Class="FlashAxControls.FlashPlayer"
         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" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300" Loaded="FlashPlayer_Loaded">
    <Grid x:Name="FlashPlayerGrid">

    </Grid>
</UserControl>
在这种情况下,wflashplayer.Designer.vb

Imports System.Windows.Forms

Namespace FlashAxControls
    Partial Public Class WFFlashPlayer
        Inherits UserControl
        Public Sub New()
            InitializeComponent()
            AxShockwaveFlash.Base = "#"
            AxShockwaveFlash.Movie = "#"
        End Sub
    End Class
End Namespace
Namespace FlashAxControls
    Partial Class WFFlashPlayer
        ''' <summary> 
        ''' Required designer variable.
        ''' </summary>
        Private components As System.ComponentModel.IContainer = Nothing

        ''' <summary> 
        ''' Clean up any resources being used.
        ''' </summary>
        ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        Protected Overrides Sub Dispose(disposing As Boolean)
            If disposing AndAlso (components IsNot Nothing) Then
                components.Dispose()
            End If
            MyBase.Dispose(disposing)
        End Sub

#Region "Component Designer generated code"

        ''' <summary> 
        ''' Required method for Designer support - do not modify 
        ''' the contents of this method with the code editor.
        ''' </summary>
        Private Sub InitializeComponent()
            Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(WFFlashPlayer))
            Me.AxShockwaveFlash = New AxShockwaveFlashObjects.AxShockwaveFlash()
            CType(Me.AxShockwaveFlash, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'AxShockwaveFlash
            '
            Me.AxShockwaveFlash.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
            Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
            Me.AxShockwaveFlash.Enabled = True
            Me.AxShockwaveFlash.Location = New System.Drawing.Point(0, 0)
            Me.AxShockwaveFlash.Margin = New System.Windows.Forms.Padding(0)
            Me.AxShockwaveFlash.Name = "AxShockwaveFlash"
            Me.AxShockwaveFlash.OcxState = CType(resources.GetObject("AxShockwaveFlash.OcxState"), System.Windows.Forms.AxHost.State)
            Me.AxShockwaveFlash.Size = New System.Drawing.Size(1125, 825)
            Me.AxShockwaveFlash.TabIndex = 0
            '
            'WFFlashPlayer
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(239, Byte), Integer), CType(CType(239, Byte), Integer), CType(CType(242, Byte), Integer))
            Me.Controls.Add(Me.SimpleButton1)
            Me.Controls.Add(Me.AxShockwaveFlash)
            Me.Name = "WFFlashPlayer"
            Me.Size = New System.Drawing.Size(1125, 825)
            CType(Me.AxShockwaveFlash, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)
        End Sub

#End Region

        Private AxShockwaveFlash As AxShockwaveFlashObjects.AxShockwaveFlash
    End Class
End Namespace
<UserControl x:Class="FlashAxControls.FlashPlayer"
         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" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300" Loaded="FlashPlayer_Loaded">
    <Grid x:Name="FlashPlayerGrid">

    </Grid>
</UserControl>
FlashPlayer.xaml

Imports System.Windows.Forms

Namespace FlashAxControls
    Partial Public Class WFFlashPlayer
        Inherits UserControl
        Public Sub New()
            InitializeComponent()
            AxShockwaveFlash.Base = "#"
            AxShockwaveFlash.Movie = "#"
        End Sub
    End Class
End Namespace
Namespace FlashAxControls
    Partial Class WFFlashPlayer
        ''' <summary> 
        ''' Required designer variable.
        ''' </summary>
        Private components As System.ComponentModel.IContainer = Nothing

        ''' <summary> 
        ''' Clean up any resources being used.
        ''' </summary>
        ''' <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        Protected Overrides Sub Dispose(disposing As Boolean)
            If disposing AndAlso (components IsNot Nothing) Then
                components.Dispose()
            End If
            MyBase.Dispose(disposing)
        End Sub

#Region "Component Designer generated code"

        ''' <summary> 
        ''' Required method for Designer support - do not modify 
        ''' the contents of this method with the code editor.
        ''' </summary>
        Private Sub InitializeComponent()
            Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(WFFlashPlayer))
            Me.AxShockwaveFlash = New AxShockwaveFlashObjects.AxShockwaveFlash()
            CType(Me.AxShockwaveFlash, System.ComponentModel.ISupportInitialize).BeginInit()
            Me.SuspendLayout()
            '
            'AxShockwaveFlash
            '
            Me.AxShockwaveFlash.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
            Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
            Me.AxShockwaveFlash.Enabled = True
            Me.AxShockwaveFlash.Location = New System.Drawing.Point(0, 0)
            Me.AxShockwaveFlash.Margin = New System.Windows.Forms.Padding(0)
            Me.AxShockwaveFlash.Name = "AxShockwaveFlash"
            Me.AxShockwaveFlash.OcxState = CType(resources.GetObject("AxShockwaveFlash.OcxState"), System.Windows.Forms.AxHost.State)
            Me.AxShockwaveFlash.Size = New System.Drawing.Size(1125, 825)
            Me.AxShockwaveFlash.TabIndex = 0
            '
            'WFFlashPlayer
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.BackColor = System.Drawing.Color.FromArgb(CType(CType(239, Byte), Integer), CType(CType(239, Byte), Integer), CType(CType(242, Byte), Integer))
            Me.Controls.Add(Me.SimpleButton1)
            Me.Controls.Add(Me.AxShockwaveFlash)
            Me.Name = "WFFlashPlayer"
            Me.Size = New System.Drawing.Size(1125, 825)
            CType(Me.AxShockwaveFlash, System.ComponentModel.ISupportInitialize).EndInit()
            Me.ResumeLayout(False)
        End Sub

#End Region

        Private AxShockwaveFlash As AxShockwaveFlashObjects.AxShockwaveFlash
    End Class
End Namespace
<UserControl x:Class="FlashAxControls.FlashPlayer"
         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" 
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300" Loaded="FlashPlayer_Loaded">
    <Grid x:Name="FlashPlayerGrid">

    </Grid>
</UserControl>

最后,这里是我的WPF应用程序XAML代码(有点定制):



我希望这能帮助别人。

你需要发布一个特定的问题,然后用特定的正确答案更容易解决。。尝试一些东西,然后在遇到问题时询问这里,并添加问题代码片段。例如,请看右侧的相关部分:实际上,我在复制此应用程序的方式上遇到了困难。。。我不知道什么工具可以帮助我做“所有”我想做的事情,因为我发现大多数项目都有限制,因为微软的许可证或其他东西。我已经试了三天了,我一直在挣扎。。。我知道最好说得具体一点,但事实上,我再具体不过了。我知道如何在WinForms中嵌入flash,问题是实现一个可定制的功能区。在WPF中正好相反,ribbon几乎实现了,但不能嵌入Flash。顺便说一句,我更喜欢使用WinForms。我终于设法在WPF中添加了Flash,所以我会看看是否可以继续在我的项目中使用它,我会回来获取更多信息。我将用这个特定问题的解决方案编辑我的第一篇文章:p