void MainWindow_Loaded(object sender, RoutedEventArgs e) { Mouse.OverrideCursor = Cursors.None; MouseMove += new MouseEventHandler(MainWindow_MouseMove); MouseDown += new MouseButtonEventHandler(MainWindow_MouseDown); KeyDown += new KeyEventHandler(MainWindow_KeyDown); _panel = new MainPanel(_info); this.Content = _panel; _panel.Width = this.Width; _panel.Height = this.Height; }
/// <summary> /// プレビュー画面を表示する /// </summary> private void startPreview(IntPtr pPreviewHnd) { RECT lpRect = new RECT(); bool bGetRect = Win32API.GetClientRect(pPreviewHnd, ref lpRect); HwndSourceParameters sourceParams = new HwndSourceParameters("sourceParams"); sourceParams.PositionX = 0; sourceParams.PositionY = 0; sourceParams.Height = lpRect.Bottom - lpRect.Top; sourceParams.Width = lpRect.Right - lpRect.Left; sourceParams.ParentWindow = pPreviewHnd; sourceParams.WindowStyle = (int)(WindowStyles.WS_VISIBLE | WindowStyles.WS_CHILD | WindowStyles.WS_CLIPCHILDREN); // プレビュー画面では静音にする MainPanel previewPanel = new MainPanel(true); HwndSource winWPFContent = new HwndSource(sourceParams); winWPFContent.Disposed += (s, e) => { if (previewPanel != null) previewPanel.PanelExit(); }; Canvas canvas = new Canvas(); canvas.Background = System.Windows.Media.Brushes.AliceBlue; canvas.Width = sourceParams.Width; canvas.Height = sourceParams.Height; // capture desktop Image img = new Image(); img.Source = Win32API.CaptureScreen(); Canvas.SetTop(img, 0); Canvas.SetLeft(img, 0); img.Width = sourceParams.Width; img.Height = sourceParams.Height; canvas.Children.Add(img); // movie panel Canvas.SetTop(previewPanel, 0); Canvas.SetLeft(previewPanel, 0); previewPanel.Width = sourceParams.Width; previewPanel.Height = sourceParams.Height; canvas.Children.Add(previewPanel); winWPFContent.RootVisual = canvas; }