Xamarin.MacOS的图像按钮

问题描述

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

解决方法

Xamarin.MacOS中是否有图像按钮渲染器?

很遗憾,在检查了 Xamarin.Forms.Platform.macOS 的源代码之后,现在没有ImageButtonRenderer。我猜没有控制的原因与ImageButton类似。我不确定设计者将来是否会添加。无论如何,现在不存在。

Xamarin.MacOS是否支持图像按钮?

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

但是,有一种解决方法。您可以在Forms中使用Button,并在Xamarin.MacOS的ButtonRenderer中添加Image。因为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相同,可以添加到资源文件夹中,并设置 Propertied:构建操作-> BundleResource

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...