2017-02-15 42 views
1

То, что я пытаюсь достичь, - показать презентацию PowerPoint напрямую, не открывая Powerpoint в окне WPF. Сейчас я использую этот код для запуска презентации:Показывать презентацию Powerpoint в кадре в 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(); 

с переменным источником является путем к нужному файлу. Этот код открывает презентацию PowerPoint в полноэкранном режиме, что будет хорошо, но мое приложение работает на сенсорном устройстве без клавиатуры или мыши. Поэтому я хотел бы иметь возможность наложить надпись над самой презентацией с помощью «Close» -Button, например.

Я уже нашел эту тему Hosting external app in WPF window, но мне сложно понять, что на самом деле происходит там.

Я надеюсь, что кто-то может мне помочь.

Заранее спасибо.

+0

Это может помочь: HTTP: // stackoverflow.com/questions/32094792/convert-selected-powerpoint-shapes-or-drawingml-to-xaml – Ron

ответ

0

Мне удалось сделать это так, как мне удобно. Вот код:

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"> 

Важной частью являются: фон, Topmost и AllowTransparency

Код За:

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(); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^