xamarin.forms - Xamarin.Forms - 从 ImageButtonRenderer 获取控制
问题描述
我正在尝试创建一个名为 TintedImageButton 的 ImageButton 子类,它(惊喜)可以为图像着色。我正在遵循我发现的一些 TintedImage 代码的基本结构。
TintedImageButton 为 iOS、Android 和 UWP 提供了三个渲染器。
Android 版本的 TintedImageButtonRenderer 无法正常工作,因为它无法访问其超类 ImageButtonRenderer 的“Control”属性。控件应该是本机小部件。
我一直无法找到 ImageButtonRenderer 的类文档,但反编译似乎表明 Control 属性已为 Android 设置为私有,但不适用于 iOS。有谁知道这可能是为什么?如何获取本机小部件以便修改它?
解决方案
ImageButtonRenderer
继承自AppCompatImageButton
,因此该类myImageButtonRender
本身是本机控件,它是 的子类AppCompatImageButton
。
[assembly: ExportRenderer(typeof(TintedImageButton), typeof(myImageButtonRender))]
namespace App261.Droid
{
class myImageButtonRender : ImageButtonRenderer
{
public myImageButtonRender(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ImageButton> e)
{
base.OnElementChanged(e);
this.SetImageResource(Resource.Drawable.sample);
AppCompatImageButton imagV = this as AppCompatImageButton;
}
}
}
推荐阅读
- scala - http4s 上 scala 应用程序的访问日志记录
- python - 生成随机数的函数用种子调用其他生成随机数的函数,种子似乎又被使用了
- flutter - 将宽度设置为行的特定子项
- javascript - 停止 JS 从定义的变量中选择两次相同的图像
- python - 使用Python对图像中阈值以上像素值求和的最快方法
- java - 构建 Spark 项目方法
- excel - Excel 函数错误,您为此函数输入了太多参数
- python - 带有变量和通配符的 Ansible 条件
- javascript - 在 PHP 预先生成 UI 时,通过单击按钮替换 UI
- java - 带有 JPA 实体的 Spring Boot Cacheable 注释