private static void HideMinimizeAndMaximizeButtons(Window window) { var hwnd = new WindowInteropHelper(window).Handle; var style = DllExtern.getWindowLong(hwnd, DllExtern.gwlStyle); var value = style & ~DllExtern.wsMaximizebox & ~DllExtern.wsMinimizebox; DllExtern.setWindowLong(hwnd, DllExtern.gwlStyle, value); }
private void MouseListenerEvent(object sender, EventArgs e) { if (_isDraggable) { return; } var compositionTarget = PresentationSource.FromVisual(this)?.CompositionTarget; if (compositionTarget == null) { return; } var transform = compositionTarget.TransformFromDevice; var toPoint = transform.Transform(GetMousePosition()); var mouseInControl = false; foreach (var control in _controls) { Dispatcher.BeginInvoke(new Action(() => { // Get control position relative to window var windowPos = control.TransformToAncestor(this).Transform(new Point(0, 0)); var windowRectangle = new Rect { X = windowPos.X + Left, Y = windowPos.Y + Top, Width = control.Width, Height = control.Height }; // Add window position to get global control position // Set control width/height if (windowRectangle.Contains(toPoint)) { mouseInControl = true; } if (mouseInControl && _isClickThrough) { _isClickThrough = false; var hwnd = new WindowInteropHelper(this).Handle; DllExtern.unsetWindowExTransparent(hwnd); } else if (!mouseInControl && !_isClickThrough) { _isClickThrough = true; var hwnd = new WindowInteropHelper(this).Handle; DllExtern.setWindowExTransparent(hwnd); } })); } }
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e) { var data = Common.loadCache(); Left = data.Left; Top = data.Top; var handle = new WindowInteropHelper(Application.Current.MainWindow).Handle; DllExtern.sendWpfWindowBack(handle); }
protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); var hwnd = new WindowInteropHelper(this).Handle; var timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(150) }; timer.Tick += MouseListenerEvent; timer.Start(); DllExtern.setWindowExTransparent(hwnd); }
private static ImageSource ToImageSource(Icon icon) { var bitmap = icon.ToBitmap(); var hBitmap = bitmap.GetHbitmap(); ImageSource wpfBitmap = Imaging.CreateBitmapSourceFromHBitmap( hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); if (!DllExtern.deleteObject(hBitmap)) { throw new Win32Exception(); } return(wpfBitmap); }
private void Anchor_OnClick(object sender, RoutedEventArgs e) { var hwnd = new WindowInteropHelper(this).Handle; if (_isDraggable) { _isDraggable = false; Cursor = Cursors.Arrow; Anchor.Foreground = Brushes.DimGray; DllExtern.setWindowExTransparent(hwnd); return; } DllExtern.unsetWindowExTransparent(hwnd); Cursor = Cursors.Hand; _isDraggable = true; Anchor.Foreground = new SolidColorBrush(_deepPurple); }