Xamarin.MacOS 的图像按钮

Image Button for Xamarin.MacOS

Xamarin.MacOS中有图像按钮渲染器吗? 我正在使用 Xamarin.Forms,而我在公共代码中的所有图像按钮在 Xamarin.MacOS 中根本没有显示。 Xamarin.MacOS 是否支持图像按钮?

Is there an Image Button Renderer in Xamarin.MacOS?

不幸的是,在检查了Xamarin.Forms.Platform.macOS的源代码后,现在没有ImageButtonRenderer了。我想没有控制的原因与ImageButton类似。我不确定设计师将来是否会添加这个。不管怎样,现在它不存在了。

Is Image Button supported in Xamarin.MacOS?

从上面说的,MacOS没有像ImageButton那样的Forms控件。因此,如果在 Xamarin Froms 中使用 ImageButton,它将不会显示在 Xamarin.MacOS.

但是,有一个解决方法。您可以在表单中使用 Button,并在 Xamarin.MacOS 中添加 ButtonRenderer 中的图像。因为 NSButton 有一个 Image property.

例如ButtonRenderer的代码如下:

[assembly: ExportRenderer (typeof(MyButton), typeof(MyButtonRenderer))]
namespace CustomRenderer.MacOS
{
    public class MyButtonRenderer : ButtonRenderer
    {
        protected override void OnElementChanged (ElementChangedEventArgs<Button> e)
        {
            base.OnElementChanged (e);

            if (Control != null) {
                // do whatever you want to the UITextField here!
                Control.Image= NSImage.ImageNamed("tree")
                Control.ImageScaling = NSImageScale.AxesIndependently;
            }
        }
    }
}

图片来源(tree.png)同iOS添加到Resource文件夹,设置属性:生成操作 -> BundleResource.