在.NET MAUI中实现桌面TabView

6
我刚开始使用.NET MAUI。从一开始,我就已经很难使Windows部署看起来像一个典型的Windows桌面应用程序,这让我感到奇怪,因为它似乎被大力营销为在每个平台上实现本地外观。
我只是想为应用程序的桌面版本实现类似于此的TabView-这是来自WinUI画廊的,据我了解,MAUI使用它:

enter image description here

或者,像经典的WinForms一样:

enter image description here

但不幸的是,与 .NET MAUI 相关的任何谷歌搜索似乎都集中在移动部署和美学方面(例如https://learn.microsoft.com/en-us/dotnet/maui/user-interface/pages/tabbedpage):

enter image description here

在 MAUI 应用的桌面版本中实现桌面美学是否有可能?到目前为止,感觉 MAUI 实际上是一个在桌面上运行的移动 UI 框架。


你有在Windows上尝试过TabbedPage吗?“在Windows上,选项卡列表显示在屏幕顶部,页面内容显示在下方。每个选项卡都由一个标题组成。”这表明你可以在屏幕顶部获得选项卡。 - Martin Honnen
你具体遇到了什么“困难”?看起来你还没有尝试过任何东西。花30分钟构建一个示例可能会给你比我们能告诉你的更多答案。 - Jason
@MartinHonnen 是的,我有 - 就像在微软文档中链接的那样。结果是,确实是一个TabbedPage - 但它看起来像移动应用程序中看到的那种。与第一或第二个截图不同,这是您在桌面应用程序(例如Web浏览器)中看到的典型桌面TabbedPage。此外,它占用整个ContentPage - 我可能希望在另一个TabbedPage中拥有多个TabbedPages,等等。 - Saturn
@Jason,问题在于如果你按照微软的TabbedPage文档进行操作,结果会得到一个整个页面都带有移动应用程序风格标签的页面(最后一张截图),这看起来不像WinForms的TabbedPage,后者可以被包含并放置在表单中的任何位置。除了官方文档本身,还有什么其他尝试的方法吗?微软甚至有一页专门介绍“如何使用TabbedPage”-我为什么要尝试其他东西呢?听起来正是我应该尝试的内容-我确实尝试了,并且它看起来完全像一个移动应用程序,而不是前两张图片。 - Saturn
您的问题没有明确指出您最关心的是它填充了页面的事实。在 MAUI 中,页面会占用整个屏幕(或窗口)。TabView 可以放置在页面的任何位置。一些组件供应商为 MAUI 提供 TabView 控件,或者您可以等待并查看是否会有社区版本可用(XF Community Toolkit 中就有一个)。 - Jason
XF社区中的MAUI兼容工具包表现非常糟糕... - Richard Hammond
2个回答

7

TL;DR:

能做到吗?可能。

Maui不能直接支持这个功能。


首先,Maui不支持在选项卡上添加关闭按钮("X")。这是由于Maui的移动优先设计。虽然可以通过一些技巧添加和删除选项卡,但这需要进行一些修改。

其次,外观和感觉将会保留移动优先设计的特点。具体来说,活动选项卡将有一个下划线,而不是传统的凸起选项卡轮廓。

最后,将选项卡放置在UI的特定部分而非整个UI上也是一个问题。Maui仅支持整个窗口的选项卡,而不支持部分窗口的选项卡。不过,对于你的用例来说,这似乎不是一个问题。

需要注意的是,有第三方供应商提供额外的Maui控件,但是对于选项卡,它们似乎与内置的Maui控件具有相同的设计哲学。或者,您可以创建自定义控件,以便按照您的喜好进行设计,但您很快就会发现自己需要实现许多平台特定的实现。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接