.net 如何自定义Maui应用程序中的应用程序栏?

edqdpe6u  于 2022-12-27  发布在  .NET
关注(0)|答案(2)|浏览(285)

我刚开始在. net MAUI平台上进行桌面开发,我在自定义应用程序栏时遇到了一个奇怪的问题。我想更改应用程序栏的颜色并添加内容,但我不知道如何操作。
enter image description hereenter image description here
https://learn.microsoft.com/en-us/windows/apps/develop/title-bar?tabs=wasdk#platform-options

vohkndzv

vohkndzv1#

我不知道这是否是你所需要的,但如果你在AppShell.xaml中声明了菜单项,你可以改变那里的背景。只要在构造函数中做:

<AppShell 
[...]
Background="blue">
[...]
<AppShell>

如果这不是你的意思,请指定你的帖子,并添加你的代码。

pbpqsu0x

pbpqsu0x2#

根据标题栏的自定义程度,您可以对标题栏应用两个自定义级别:对默认标题栏进行细微修改,或将应用画布扩展到标题栏区域并提供完全自定义的内容。
要更改应用标题栏的颜色,可以尝试以下代码:

#if WINDOWS
            var uiSettings = new Windows.UI.ViewManagement.UISettings();
            var color = uiSettings.GetColorValue(UIColorType.Accent);
            Microsoft.UI.Xaml.Window window = (Microsoft.UI.Xaml.Window)App.Current.Windows.First<Window>().Handler.PlatformView;
            //get the current window on the windows platform
            IntPtr windowHandle = WinRT.Interop.WindowNative.GetWindowHandle(window);
            Microsoft.UI.WindowId windowId = Microsoft.UI.Win32Interop.GetWindowIdFromWindow(windowHandle);
            Microsoft.UI.Windowing.AppWindow appWindow = Microsoft.UI.Windowing.AppWindow.GetFromWindowId(windowId);
            Microsoft.UI.Windowing.AppWindowTitleBar titlebar = appWindow.TitleBar;
           //titlebar.ExtendsContentIntoTitleBar = true;
           //You may need to uncomment the line above
            titlebar.BackgroundColor = color;
#endif

要向标题栏添加内容,可以尝试修改Windows项目下的App.xaml。有关详细信息,请参阅修复AppTitleBarHeight以匹配标题按钮高度#5811

相关问题