-1

我是色盲,想在我的应用程序中利用 MacOS 中的暗模式。

我看到了这个,但我不知道它是否适合我的上下文。

作为色盲,我无法选择自己的配色方案。我只想要标准的暗模式。

目前我的窗口(全部在 XAML / Xamarin.Forms 4.8 中,带有硬编码文本)看起来像这样:

在此处输入图像描述

任何有关 Visual Studio for Mac 演练的指针表示赞赏。


更新 1

如果我添加以下控件:

<Label x:Name="currentThemeLabel" Text="{AppThemeBinding Dark='Dark1', Light='Light2',Default='Default3'}"/>

我窗口上的结果是Light2。我的 MacOS 应用程序似乎被迫为 Light 模式。


更新 2

我添加了一个按钮处理程序来测试它:

void OnButtonAddElderClicked(object sender, EventArgs e)
{
    var alert = new NSAlert()
    {
        AlertStyle = NSAlertStyle.Informational,
        InformativeText = "The active theme is: " + Application.Current.UserAppTheme.ToString(),
        MessageText = "Active Theme",
    };
    alert.RunModal();
}

它显示:

在此处输入图像描述

所以应用程序中的主题是Unspecified. 根据此信息,它指出:

Unspecified当操作系统没有要请求的特定用户界面样式时将返回。这方面的一个例子是在运行 iOS 版本早于 13.0 的设备上。

我正在使用 macOS Big Sur(截至 2021 年 2 月 11 日的最新更新),它设置为 Dark:

在此处输入图像描述

所以我仍然不明白为什么应用程序返回Unspecified而不是Dark.

AppDelegate.cs如果有帮助,这是我的:

using AppKit;
using Foundation;
using VisitsRota;
using Xamarin.Forms;
using Xamarin.Forms.Platform.MacOS;

namespace VisitsRota.MacOS
{
    [Register("AppDelegate")]
    public class AppDelegate : FormsApplicationDelegate
    {
        NSWindow window;
        public AppDelegate()
        {
            var style = NSWindowStyle.Closable | NSWindowStyle.Resizable | NSWindowStyle.Titled;

            var rect = new CoreGraphics.CGRect(200, 1000, 1024, 768);
            window = new NSWindow(rect, style, NSBackingStore.Buffered, false);
            window.Title = "Visits Rota for Mac";
            window.TitleVisibility = NSWindowTitleVisibility.Hidden;
           
        }

        public override NSWindow MainWindow
        {
            get { return window; }
        }

        public override void DidFinishLaunching(NSNotification notification)
        {
            Forms.Init();
            LoadApplication(new App());
            base.DidFinishLaunching(notification);
        }
    }
}
4

1 回答 1

0

我未分级到最新的 5.x snd,它现在显示为暗:

在此处输入图像描述

如果我切换主题,唯一不会正确更改的控件是Button对象。

于 2021-02-11T09:34:41.027 回答