2017-02-15 1 views
1

Was ich versuche zu erreichen, ist eine PowerPoint-Präsentation direkt zu zeigen, ohne PowerPoint in einem WPF-Fenster zu öffnen. Im Moment verwende ich diesen Code, um die Präsentation zu starten:Zeigen Sie eine Powerpoint-Präsentation in einem Frame in WPF

Process proc = new Process(); 
    proc.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.EXE"; 
    proc.StartInfo.Arguments = " /s " + source.ToString(); 
    proc.Start(); 

mit der variablen Quelle der Pfad zu der gewünschten Datei zu sein. Dieser Code öffnet die PowerPoint-Präsentation im Vollbildmodus, das wäre in Ordnung, aber meine Anwendung läuft auf einem Touch-Gerät ohne Tastatur oder Maus verbunden. Ich würde also gerne ein Overlay über der Präsentation selbst mit einem "Close" -Button platzieren können.

Ich habe dieses Thema bereits gefunden Hosting external app in WPF window, aber ich habe eine harte Zeit zu verstehen, was tatsächlich dort vor sich geht.

Ich hoffe, dass mir jemand helfen kann.

Vielen Dank im Voraus.

+0

Dies könnte helfen: http: // stackoverflow.com/questions/32094792/convert-selected-powerpoint-shapes-ordrawingml-to-xaml – Ron

Antwort

0

Ich schaffte es auf eine Art, mit der ich mich wohl fühle. Hier ist der Code:

XAML:

<Window x:Name="window" x:Class="Project.PowerPointViewer" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:Project" 
     mc:Ignorable="d" 
     Title="PowerPointViewer" Background="Transparent" Topmost="True" AllowsTransparency="True" ResizeMode="NoResize" WindowStyle="None" WindowState="Maximized"> 

Der wichtige Teil Wesen: Hintergrund, Topmost und AllowTransparency

-Code Behind:

public partial class PowerPointViewer : Window 
{ 
    Process proc = new Process(); 
    Window main; 
    public PowerPointViewer(Window main) 
    { 
     InitializeComponent(); 
     this.main = main; 
    } 

    public void open(string source) 
    { 
     proc.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.EXE"; 
     proc.StartInfo.Arguments = " /s " + source; 
     proc.Start(); 
     Show(); 
    } 

    private void bt_close_Click(object sender, RoutedEventArgs e) 
    { 
     if (!proc.HasExited) 
      proc.Kill(); 
     Close(); 
     main.Focus(); 
    } 
} 
Verwandte Themen