2017-02-15 13 views
1

내가 얻으려고하는 것은 WPF 윈도우에서 파워 포인트를 비공개로 열지 않고 직접 파워 포인트 프리젠 테이션을 보여주는 것이다. 는 지금은 프리젠 테이션을 시작하려면이 코드를 사용하고 있습니다 :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"> 

중요한 부분 존재 : 배경, 맨 위 및 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(); 
    } 
}