dotnet / dotnet/maui

[Windows/MacOS] Add a Tabbed window support

Open
#7,451 7 comments 50 reactions 0 assignees View on GitHub
area-controls-newcontrol legacy-area-desktop partner/cat 😻 platform/macos platform/windows proposal/open t/desktop t/enhancement ☀️
Dominant language
C#
Stars
23.3k
Forks
2k
Avg merge
1d 10h
Merged PRs (30d)
297

Description

### Description

Hello.

It would be adorable if Maui had support for Tabbed windows at the window level.
I tried looking at the MAUI documentation and found only support for a tab bar that would be a TabView.
The current tab bar helps, but I don't think it's ideal for windows.

**Tabbar (actual)**
[.NET MAUI Shell tabs](https://docs.microsoft.com/en-us/dotnet/maui/fundamentals/shell/tabs)

![image](https://user-images.githubusercontent.com/5881027/170005494-d2811706-dc74-4209-8462-ebe2a36168b9.png)

**Tabbed Window**
Screenshot 2022-05-24 at 10 54 28

Screenshot 2022-05-24 at 12 21 37

Screenshot 2022-05-24 at 12 23 11

The tab bar that we currently have is based on a mobile interface, not something native to the development of a desktop application.

WinUI currently has a component called TabView that is more in line with the tabbed window view of a desktop application.
WinUI - [TabView](https://docs.microsoft.com/en-us/windows/apps/design/controls/tab-view)

On MacOS, all applications that use NSWindow automatically support NSWindowTab, so they can combine multiple windows into one window with content as tabs.
Or open new instances of an application as if they were tabs.
AppKit - [NSWindowTab](https://developer.apple.com/documentation/appkit/nswindowtab)

----
TLTR
Actual MAUI Implementation:
iOS - [Tab Bars](https://developer.apple.com/design/human-interface-guidelines/ios/bars/tab-bars/)
MacOS - [Tab View](https://developer.apple.com/design/human-interface-guidelines/macos/windows-and-views/tab-views/)

Needed implementation, just for desktop apps:
MacOS - [Window Tab bar ](https://developer.apple.com/design/human-interface-guidelines/macos/windows-and-views/window-anatomy/)
WinUI - [Tab View](https://docs.microsoft.com/en-us/windows/apps/design/controls/tab-view) (Display TabView tabs in a window's titlebar)

### Public API Changes

The same api from the [TabView](https://docs.microsoft.com/en-us/windows/apps/design/controls/tab-view) from WinUI.
```xml

```

### Intended Use-Case

Maui is a new tool that will make it much easier to create desktop applications that work natively on Windows and Mac.
Dynamic tab support is needed to enable a new universe of document-based applications.
The tabbed window allows the user to concentrate several instances of their applications in the same window, facilitating the exchange of contexts.
[Windows Terminal](https://github.com/microsoft/terminal) is an excellent example of a Tabbed Window.
We also have rumours that [Windows Explore](https://www.theverge.com/2022/4/5/23011175/microsoft-windows-11-file-explorer-tabs-favorites-features) will get tabs.

Screenshot 2022-05-24 at 19 12 54

[WinUI's Tab View](WinUI's Tab View component and [AppKit's NSWindow](https://developer.apple.com/documentation/appkit/nswindowtab) already provide us with all the necessary options. We now need these accessible options.) component and AppKit's NSWindow already provide us with all the necessary options. Now, we need these options exposed inside the MAUI.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.