Example #1
0
        private void SetDragRegionForCustomTitleBar(AppWindow appWindow)
        {
            //Infer titlebar height
            int titleBarHeight = appWindow.TitleBar.Height;

            MyTitleBar.Height = titleBarHeight;

            // Get caption button occlusion information
            // Use LeftInset if you've explicitly set your window layout to RTL or if app language is a RTL language
            int CaptionButtonOcclusionWidth = appWindow.TitleBar.RightInset;

            // Define your drag Regions
            int windowIconWidthAndPadding = MyWindowIcon.Width + MyWindowIcon.Margin.Right;
            int dragRegionWidth           = appWindow.Size.Width - (CaptionButtonOcclusionWidth + windowIconWidthAndPadding);

            Windows.Graphics.RectInt32[] dragRects = new Windows.Graphics.RectInt32[] { };
            Windows.Graphics.RectInt32   dragRect;

            dragRect.X      = windowIconWidthAndPadding;
            dragRect.Y      = 0;
            dragRect.Height = titleBarHeight;
            dragRect.Width  = dragRegionWidth;

            appWindow.TitleBar.SetDragRectangles(dragRects.Append(dragRect).ToArray());
        }
Example #2
0
        private void TitlebarCustomBtn_Click(object sender, RoutedEventArgs e)
        {
            _mainAppWindow.TitleBar.ExtendsContentIntoTitleBar = !_mainAppWindow.TitleBar.ExtendsContentIntoTitleBar;

            // Check to see if customization is supported. Currently only supported on Windows 11.
            if (AppWindowTitleBar.IsCustomizationSupported() && _mainAppWindow.TitleBar.ExtendsContentIntoTitleBar)
            {
                // Show the custom titlebar
                _mainWindow.MyTitleBar.Visibility = Visibility.Visible;

                // Set Button colors to match the custom titlebar
                _mainAppWindow.TitleBar.ButtonBackgroundColor         = Colors.Blue;
                _mainAppWindow.TitleBar.ButtonForegroundColor         = Colors.White;
                _mainAppWindow.TitleBar.ButtonInactiveBackgroundColor = Colors.Blue;
                _mainAppWindow.TitleBar.ButtonInactiveForegroundColor = Colors.White;
                _mainAppWindow.TitleBar.ButtonHoverBackgroundColor    = Colors.Green;
                _mainAppWindow.TitleBar.ButtonHoverForegroundColor    = Colors.White;
                _mainAppWindow.TitleBar.ButtonPressedBackgroundColor  = Colors.Green;
                _mainAppWindow.TitleBar.ButtonPressedForegroundColor  = Colors.White;

                //Infer titlebar height
                int titleBarHeight = _mainAppWindow.TitleBar.Height;
                _mainWindow.MyTitleBar.Height = titleBarHeight;

                // Get caption button occlusion information
                // Use LeftInset if you've explicitly set your window layout to RTL or if app language is a RTL language
                int CaptionButtonOcclusionWidth = _mainAppWindow.TitleBar.RightInset;

                // Define your drag Regions
                int windowIconWidthAndPadding = (int)_mainWindow.MyWindowIcon.ActualWidth + (int)_mainWindow.MyWindowIcon.Margin.Right;
                int dragRegionWidth           = _mainAppWindow.Size.Width - (CaptionButtonOcclusionWidth + windowIconWidthAndPadding);

                Windows.Graphics.RectInt32[] dragRects = new Windows.Graphics.RectInt32[] { };
                Windows.Graphics.RectInt32   dragRect;

                dragRect.X      = windowIconWidthAndPadding;
                dragRect.Y      = 0;
                dragRect.Height = titleBarHeight;
                dragRect.Width  = dragRegionWidth;

                var dragRectsArray = dragRects.Append(dragRect).ToArray();
                _mainAppWindow.TitleBar.SetDragRectangles(dragRectsArray);
            }
            else
            {
                // Bring back the default titlebar
                _mainWindow.MyTitleBar.Visibility = Visibility.Collapsed;
                _mainAppWindow.TitleBar.ResetToDefault();
            }
        }