OSX 上的 GTK# 文件选择器非本机外观
GTK# File Chooser Non Native Look on OSX
我的 C# 应用程序使用 Mono Framework 和 GTK UI 运行 Mac.I 在 Filechooser dialog.As per gtk [=] 的外观和感觉方面有问题11=] 我应该得到这些图标
但我得到的是这个在左侧面板中没有正确图标或 drives.For 的图标驱动那里有一个名为 Volumes 的文件夹,用户需要打开它 manually.I 认为这是不是本机 Mac 用户 expects.I 发布了从网络上获得的 2 个屏幕截图。
我有这个 GTK 版本 (2.2) 与 Mono 捆绑在一起 Mac.What 我应该怎么做才能获得更原生的外观和感觉?请指教
您可以使用较旧的开源 MonoMac 或较新的 Xamarin.Mac 打开 NSOpenPanel 并使用本机 OS-X 文件选择器而不是基于 xplat 的 GTK 2 版本。
只要您记得通过 MonoMac 静态方法初始化应用程序,就可以在 GTK# 之上混合 MonoMac 对话框 NSApplication.Init()
。在应用程序启动的早期执行此操作,但在 GTK# 初始化之后。
关于打开本机 NSOpenPanel,这里是在 GTK# 按钮单击处理程序中使用的示例:
button.Clicked += (object sender, EventArgs e) => {
Application.Invoke (delegate {
var nsOpenPanel = new NSOpenPanel ();
nsOpenPanel.ReleasedWhenClosed = true;
nsOpenPanel.Prompt = "Select file";
var result = nsOpenPanel.RunModal ();
if (result == 1) {
button.Label = nsOpenPanel.Url.ToString ();
}
});
};
注意:将调用包装在一个 Application.Invoke
委托中总是明智的,这样一切都在主 GTK UI 线程上执行。
我的 C# 应用程序使用 Mono Framework 和 GTK UI 运行 Mac.I 在 Filechooser dialog.As per gtk [=] 的外观和感觉方面有问题11=] 我应该得到这些图标
但我得到的是这个在左侧面板中没有正确图标或 drives.For 的图标驱动那里有一个名为 Volumes 的文件夹,用户需要打开它 manually.I 认为这是不是本机 Mac 用户 expects.I 发布了从网络上获得的 2 个屏幕截图。
我有这个 GTK 版本 (2.2) 与 Mono 捆绑在一起 Mac.What 我应该怎么做才能获得更原生的外观和感觉?请指教
您可以使用较旧的开源 MonoMac 或较新的 Xamarin.Mac 打开 NSOpenPanel 并使用本机 OS-X 文件选择器而不是基于 xplat 的 GTK 2 版本。
只要您记得通过 MonoMac 静态方法初始化应用程序,就可以在 GTK# 之上混合 MonoMac 对话框 NSApplication.Init()
。在应用程序启动的早期执行此操作,但在 GTK# 初始化之后。
关于打开本机 NSOpenPanel,这里是在 GTK# 按钮单击处理程序中使用的示例:
button.Clicked += (object sender, EventArgs e) => {
Application.Invoke (delegate {
var nsOpenPanel = new NSOpenPanel ();
nsOpenPanel.ReleasedWhenClosed = true;
nsOpenPanel.Prompt = "Select file";
var result = nsOpenPanel.RunModal ();
if (result == 1) {
button.Label = nsOpenPanel.Url.ToString ();
}
});
};
注意:将调用包装在一个 Application.Invoke
委托中总是明智的,这样一切都在主 GTK UI 线程上执行。