gpt4 book ai didi

c# - 图像 TapGestureRecognizer 未在 Xamarin 中触发

转载 作者:行者123 更新时间:2023-12-04 11:48:19 25 4
gpt4 key购买 nike

在我的 Xamarin 应用程序中,我正在使用工具提示效果(按照这个 article )。
Help Icons在页面上,当我点击它时,工具提示出现,如果我点击 Stacklayout 区域的任何地方,它就会消失,这意味着它工作正常。
有多个Help Icons ,并且我希望如果我单击任何帮助图标,此帮助图标的工具提示只会出现并消失打开的工具提示,因为现在可以同时打开多个工具提示。
为此,我添加了一个 TapGestureRecognizer ,当有人点击帮助图标时,关闭打开的工具提示。但是,我不知道为什么TapGestureRecognizer甚至不会触发。
.xaml

<StackLayout x:Name="mainstacklayout">

<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="Handle_Tapped"
NumberOfTapsRequired="1" />
</StackLayout.GestureRecognizers>

// Code

<Image Source="drawable/help.png"
WidthRequest="20"
HeightRequest="20"
effects:TooltipEffect.Position="Left"
effects:TooltipEffect.BackgroundColor="#222222"
effects:TooltipEffect.TextColor="#FFFFFF"
effects:TooltipEffect.Text="Tooltip"
effects:TooltipEffect.HasTooltip="True">

<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="Handle_Tapped"
NumberOfTapsRequired="1" />
</Image.GestureRecognizers>
</Image>

// Code

</StackLayout>
.xaml.cs
public void Handle_Tapped(object sender, EventArgs args)
{
foreach (var c in mainstacklayout.Children)
{
if (TooltipEffect.GetHasTooltip(c))
{
TooltipEffect.SetHasTooltip(c, false);
TooltipEffect.SetHasTooltip(c, true);
}
}
}

最佳答案

  • 第一个测试是更改XAML声明每个图像的位置,

  • effects:TooltipEffect.HasTooltip="False" :
    <Image Source="drawable/help.png"
    ...
    effects:TooltipEffect.HasTooltip="False">
    如果这样做,识别器是否工作?如果是这样,那么您就成功了一半。
    在每个图像的声明中都这样做。这应该“禁用”所有工具提示。
    2.
    使用 TapGestureRecognizer 打开一个(并关闭其他):
    public void Handle_Tapped(object sender, EventArgs args)
    {
    foreach (var c in mainstacklayout.Children)
    {
    // Turn off any that are on.
    if (TooltipEffect.GetHasTooltip(c))
    {
    TooltipEffect.SetHasTooltip(c, false);
    }
    }
    // Turn on the desired tooltip.
    if (sender is View activeView)
    {
    TooltipEffect.SetHasTooltip(activeView, true);

    // TODO: TooltipEffect source needs this method added;
    // it has to find the effect for activeView, and call its `OnTap` method.
    //TODO TooltipEffect.OnTap(activeView);
    }
    }

    关于c# - 图像 TapGestureRecognizer 未在 Xamarin 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68298040/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com