Wie kann ich eine PowerPoint-Präsentation in eine WPF-Anwendung einbetten, ohne ein anderes Fenster zu öffnen?

8

Momentan habe ich eine WPF-Anwendung in C #, aber ich finde es unglaublich schwierig, nützliche Möglichkeiten zum Einbetten einer PowerPoint-Präsentation in mein Fenster zu finden.

Eine Lösung, die ich hier gefunden habe: Einbetten einer Powerpoint-Show in ein C # Anwendung

Diese Lösung hat das Problem verursacht, PowerPoint in einem anderen Fenster ausführen zu lassen, aber seine Benutzeroberfläche nur in der WPF-Anwendung anzuzeigen. Dies bedeutete, dass, wenn das WPF-Fenster fokussiert war, die PowerPoint-Präsentation nicht und nicht mehr abgespielt wurde. Es gab auch das Problem, dass PowerPoint beim Schließen des Fensters abstürzte.

Eine andere Lösung, die ich gefunden habe, war hier: Ссылка

Die Lösung war beliebt, aber ich fand es schwierig, damit zu arbeiten. Ich kenne keine Win32-Programmierung, oder C ++, also fand ich es extrem schwierig zu modifizieren. Ich habe es geschafft, dass es keine zweite Kopie von PowerPoint mehr anzeigt (eine beabsichtigte Funktion im ursprünglichen Projekt), aber ich habe noch keine Möglichkeit gefunden, die PowerPoint-Präsentation automatisch zu öffnen.

Was ich also brauche, ist eine Möglichkeit, die PowerPoint-Präsentation automatisch und im Hintergrund sauber zu öffnen (ich möchte nicht, dass die PowerPoint-Benutzeroberfläche an irgendeinem Punkt angezeigt wird) und sie automatisch ausführen lässt (und nicht darauf reagiert) Eingabe) während die Anwendung läuft. Es wäre wunderbar, wenn ich es in C # und WPF behalten könnte und nicht mit Win32 und C ++ umgehen müsste.

Ist das möglich? An dieser Stelle bedauere ich dieses Projekt aufgrund der PowerPoint-Integration Kopfschmerzen.

    
Brandon Dusseau 31.03.2013, 03:04
quelle

4 Antworten

9

Sie können Ihre Präsentation im Handumdrehen in ein Videoformat konvertieren:

%Vor%

Und dann würdest du es mit MediaElement spielen:

%Vor%

Vergiss nicht File.Delete(wmvfile) , wenn du mit der Wiedergabe des Videos fertig bist!

    
Joulukuusi 03.04.2013, 22:14
quelle
2

Wenn Sie die Präsentation über die Befehlszeile mit dem Flag / s starten, wird die Diashow wiedergegeben, ohne dass der Begrüßungsbildschirm gestartet wird.

%Vor%

Ich würde das in Übereinstimmung mit einigen der von Ihnen erwähnten WPF-Einbettungslösungen versuchen oder einen Blick auf dieser Ansatz .

Ich weiß wenig über WPF, also hoffentlich kann jemand eine bessere Antwort geben, die alle diese Stücke enthält.

    
mbreske 02.04.2013 21:25
quelle
1

Ich mag es nicht wirklich, und ich bin mir nicht sicher, ob das auf Ihre Situation zutrifft. Sie müssten Zugriff auf die Präsentation haben, so viel ist sicher. Es ist jedoch ziemlich leicht und leicht.

Meine Grundidee war, die Powerpoint-Präsentation irgendwie in HTML einzubetten und einfach das Webbrowser-Steuerelement zu verwenden, um es anzuzeigen. Es scheint eine Anzahl der Möglichkeiten dafür zu geben.

Ich beschloss, die Präsentation direkt als HTML zu speichern, was sich als möglich herausstellte (zumindest für PP2010), obwohl das Layout schöner sein könnte. Ein anderer Ansatz (z. B. die Google-Dokumente) könnte etwas Schöneres hervorbringen. Ich habe Folgendes von diesem Link genommen.

  • Öffnen Sie in PowerPoint 2010 die Präsentation, in die Sie exportieren möchten HTML
  • Drücken Sie Alt + F11.
  • Drücken Sie Strg + G.
  • Geben Sie im Direktbereich Folgendes ein, und drücken Sie die Eingabetaste: ActivePresentation.SaveAs "<Drive>:\users\<username>\desktop\<filename>.htm", ppSaveAsHTML, msoFalse

    Hinweis Um mit dem Dateiformat "Single File Web Page" (* .mht; * .mhtml) zu speichern, ersetzen Sie htm am Ende des Dateinamens durch mht und ersetzen Sie ppSaveAsHTML durch ppSaveAsWebArchive .

Wenn Sie es in HTM exportieren, erhalten Sie eine Menge zusätzlicher Dateien, in MHD ist es nur eine einzige Datei, so dass mir besser passt. Ich bin mir ziemlich sicher, dass es auch möglich wäre, diesen Schritt im Code zu automatisieren, wenn Sie mit Ihrer Lösung generisch arbeiten müssen.

Um die HTML-Datei in einem Webbrowser-Steuerelement anzuzeigen, ist der einfache Teil, ich habe es aus Bequemlichkeit in meine Dropbox hochgeladen und stelle einfach die Quelle ein (ich werde es für ein paar Tage dort lassen, wenn du es dir ansehen willst) es direkt).

Um die Diashow sofort zu starten, muss ich etwas genauer hinsehen.

%Vor%

    
Mike Fuchs 02.04.2013 21:33
quelle
1

Es gibt ein WPF-Steuerelement namens DocumentViewer .

  1. Zuerst sollte das pptx in das .xps Dateiformat konvertiert werden.
  2. Dann binden Sie es an die Eigenschaft Document des DocumentViewer.

Hier ist der Link zum Konvertieren von Office-Dokumenten (einschließlich pptx ) nach XPS in Cis.

XAML

%Vor%

Bindet an die Eigenschaft Document des Steuerelements (Beachten Sie, dass ConvertPptxDocToXPSDoc die Methode ist, um pptx in xps zu konvertieren)

%Vor%     
Haritha 04.04.2013 04:12
quelle