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);
        }
Exemple #2
0
        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);
                    }
                }));
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #6
0
        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);
        }