【问题标题】:How to set InputTransparent as true for parent, not for children如何将 InputTransparent 设置为父级,而不是子级
【发布时间】:2019-11-10 04:12:01
【问题描述】:

我有一个堆栈布局和一个按钮。我想点击那个stacklayout,也想点击那个按钮。

我尝试将 StackLayout 的 InputTransparent 设置为 true,然后将按钮设置为 false。它不起作用。在父级应用的任何内容都设置为其中的所有子级。

<StackLayout InputTransparent="True">
    <Button Text="Submit" InputTransparent="False"/>
</StackLayout>

我希望按钮被点击,StackLayout 后面的元素也应该是可点击的。

【问题讨论】:

    标签: xaml layout xamarin.forms


    【解决方案1】:

    布局具有 CascadeInputTransparent 属性。如果为 true,子视图会继承其父视图的输入透明度。当为 false 时,子视图不会继承设置了 Cascade 的布局的输入透明度。

    https://docs.microsoft.com/en-us/dotnet/api/xamarin.forms.layout.cascadeinputtransparent?view=xamarin-forms

    【讨论】:

    • 这个答案简直神了!!谢谢。尤其是当您必须开发带有静态标题的 Xamarin 应用程序时,该标题始终显示,而用户可以滚动下方的内容。
    【解决方案2】:

    使用CascadeInputTransparent

    <StackLayout InputTransparent="True" CascadeInputTransparent="False">
       <Button Text="Submit"/>
    </StackLayout>
    

    【讨论】:

      【解决方案3】:

      InputTransparent 获取或设置一个值,该值指示此元素是否应参与用户交互周期。 您将 StackLayout InputTransparent 设置为 true,这意味着“不允许此视图接收任何输入”。如果你在父视图上设置它,那么它的子视图也不应该收到触摸。

      【讨论】:

      • 是的,我知道这一点。我在问是否有任何方法可以覆盖该行为。
      • 忘记透明输入,使用轻击手势进行堆栈布局并单击按钮。 (我想你想同时点击它们并执行一些任务,如果我错了,请多解释一下)
      猜你喜欢
      • 1970-01-01
      • 2015-08-14
      • 2017-09-01
      • 2013-11-24
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      相关资源
      最近更新 更多