来自this链接。
如果元素应该接收输入,则为false;如果元素不应该接收输入,则应该为true,而应将输入传递给下面的元素。默认为false。
我想要的是,不允许Entry字段接收来自用户的输入。
InputTransparent=true
在iOS中运行良好但在Android中不起作用,它仍允许用户提供输入。
我尝试IsEnabled=false
,但这改变了我的输入字段的外观,我不想要那样。
这是某种错误吗?
答案 0 :(得分:0)
InputTransparent不适用于Android。我为StackLayout创建了简单的渲染:
在PCL项目中:
public class StackLayoutAdd :StackLayout
{
}
Android项目中的:
[assembly: ExportRenderer(typeof(StackLayoutAdd), typeof(StackLayoutAddCustom))]
.....
public class StackLayoutAddCustom : VisualElementRenderer<StackLayout>
{
public override bool DispatchTouchEvent(MotionEvent e)
{
base.DispatchTouchEvent(e);
return !Element.InputTransparent;
}
}
我在我的xaml中使用它:
<StackLayoutAddCustom InputTransparent={Binding IsReadOnly}>
<Editor />
....
</StackLayoutAddCustom>
这是儿童控制的工作。
答案 1 :(得分:0)
基于this question: 这会在触摸屏幕时不断触发,因此应用自定义渲染器并覆盖 DispatchTouchEvent
public override bool DispatchTouchEvent(MotionEvent e)
{
if (Element.InputTransparent)
{
return false;
}
return base.DispatchTouchEvent(e);
}