質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

1回答

3029閲覧

WPFでAdobe Flashを再生したいです。

cancat

総合スコア313

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2016/11/14 09:27

編集2016/11/14 09:28

こんにちは。
Windows10でWPFのアプリケーションを開発しています。
Visual Studio 2015 Communityを使っています。

###前提・実現したいこと
WPFでAdobe Flashを再生したいです。

###試したこと
Webを参考に次のようにしました。
・System.Windows.Formsを参照に追加した。
・WindowsFormsIntegrationを参照に追加した。
・ShockwaveFlashObjectsを参照に追加した。
・追加でWindowsFormsのUserControlを追加した。

WebではFlashは、AxShockwaveFlashObjects.AxShockwaveFlashという名前空間なのですが、これが見つからないので、
ShockwaveFlashObjects.ShockwaveFlash shockwaveFlash = new ShockwaveFlashObjects.ShockwaveFlash ();
とした。

###発生している問題・エラーメッセージ
Windows.FormUserControlにFlashのobjectを追加できない。
UserControlのtoolboxにFlashのcontrolが出ないので、Designer.csを編集してみた。

this.Contros.Add(showkwaveFlash);
で、ShockwaveFlashObjects.ShockwaveFlashから、System.Windows.Forms.Contorlに変更できません、とエラー。

###該当のソースコード

xaml

1<Window x:Class="flashplayer.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:flashplayer" 7 8 xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 9 mc:Ignorable="d" 10 Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded"> 11 <Grid x:Name="grid"> 12 <WindowsFormsHost x:Name="host"/> 13 </Grid> 14</Window>

C#

1FormUserControl.Designer.cs 2namespace flashplayer { 3 partial class FormUserControl { 4 private System.ComponentModel.IContainer components = null; 5 protected override void Dispose(bool disposing) { 6 if (disposing && (components != null)) { 7 components.Dispose(); 8 } 9 base.Dispose(disposing); 10 } 11 12 private void InitializeComponent() { 13 this.shockwaveFlash = new ShockwaveFlashObjects.ShockwaveFlash(); 14 this.SuspendLayout(); 15 // 16 // shockwaveFlash 17 // 18 //this.shockwaveFlash.Location = new System.Drawing.Point(67, 86); 19 //this.shockwaveFlash.Size = new System.Drawing.Size(75, 23); 20 // 21 // FormUserControl 22 // 23 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); 24 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 25 this.Controls.Add(shockwaveFlash);<--この行でエラー。 26 this.Name = "FormUserControl"; 27 this.ResumeLayout(false); 28 29 } 30 ShockwaveFlashObjects.ShockwaveFlash shockwaveFlash; 31 } 32}

###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2015
Version 14.0.25424.00 Update 3
Microsoft .NET Framework
Version 4.6.01038

インストールしているバージョン:Community

Visual C# 2015 00322-20000-00000-AA575
Microsoft Visual C# 2015

です。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ActiveX はどんどんサポートが打ち切られていくので、Ax云々が無くなるのも時代の流れ何でしょうね。
当座の対策としては、WebBrowserコントロールを使ったらどうでしょう?
再生させたいFlashと一緒に簡単なHTMLを発行する必要がある難点はあります。
しかし面倒な問題はWebBrowserコントロールが使っているIEコンポーネントに投げることができます。

投稿2016/11/19 02:05

編集2016/11/19 02:06
hihijiji

総合スコア4150

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cancat

2016/11/22 03:08

なるほど。 その方向で。 検証します。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問