private void ShowScreenSaver() { var screenSaverParams = ScreenSaverParam.LoadParams(Screen.AllScreens.Length); for (var index = 0; index < Screen.AllScreens.Length; ++index) { var screen = Screen.AllScreens[index]; var screenSaverParam = screenSaverParams[index]; var window = new ScreenSaverWindow(index, screenSaverParam, screen.Bounds); window.Show(); } }
private void PreviewScreenSaver(IntPtr previewHandle) { var screenSaverParams = ScreenSaverParam.LoadParams(1); var window = new ScreenSaverWindow(0, screenSaverParams[0], previewHandle); NativeMethods.GetClientRect(previewHandle, out var rect); var previewParam = new HwndSourceParameters("ScreenSaverPreview"); previewParam.SetPosition(0, 0); previewParam.SetSize(rect.Width, rect.Height); previewParam.ParentWindow = previewHandle; previewParam.WindowStyle = (int)(NativeWindowStyle.WS_VISIBLE | NativeWindowStyle.WS_CHILD | NativeWindowStyle.WS_CLIPCHILDREN); var previewSource = new HwndSource(previewParam); previewSource.Disposed += (s, e) => Application.Current.Shutdown(); previewSource.RootVisual = window.RootObject; }