question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Proposal] TouchEffect

See original GitHub issue

TouchEffect

  • Proposed
  • Prototype
  • Implementation
    • iOS Support
    • Android Support
    • macOS Support
    • Windows Support
  • Unit Tests: Not Started
  • Sample: Not Started
  • Documentation: Not Started

Summary

Adds additional touch events to any VisualElement

Detailed Design

TouchEffect.shared.cs

public class TouchEffect : RoutingEffect
{
  public event EventHandler<TouchStatusChangedEventArgs> StatusChanged;
  public event EventHandler<TouchStateChangedEventArgs> StateChanged;
  public event EventHandler<TouchInteractionStatusChangedEventArgs> InteractionStatusChanged;
  public event EventHandler<HoverStatusChangedEventArgs> HoverStatusChanged;
  public event EventHandler<HoverStateChangedEventArgs> HoverStateChanged;
  public event EventHandler<TouchCompletedEventArgs> Completed;
  public event EventHandler<LongPressCompletedEventArgs> LongPressCompleted;
  
  public static readonly BindableProperty IsAvailableProperty;
  public static readonly BindableProperty ShouldMakeChildrenInputTransparentProperty;
  public static readonly BindableProperty CommandProperty;
  public static readonly BindableProperty LongPressCommandProperty;
  public static readonly BindableProperty CommandParameterProperty;
  public static readonly BindableProperty LongPressCommandParameterProperty;
  public static readonly BindableProperty LongPressDurationProperty;
  public static readonly BindableProperty StatusProperty;
  public static readonly BindableProperty StateProperty;
  public static readonly BindableProperty InteractionStatusProperty;
  public static readonly BindableProperty HoverStatusProperty;
  public static readonly BindableProperty HoverStateProperty;
  public static readonly BindableProperty NormalBackgroundColorProperty;
  public static readonly BindableProperty HoveredBackgroundColorProperty;
  public static readonly BindableProperty PressedBackgroundColorProperty;
  public static readonly BindableProperty NormalOpacityProperty;
  public static readonly BindableProperty HoveredOpacityProperty;
  public static readonly BindableProperty PressedOpacityProperty;
  public static readonly BindableProperty NormalScaleProperty;
  public static readonly BindableProperty HoveredScaleProperty;
  public static readonly BindableProperty PressedScaleProperty;
  public static readonly BindableProperty NormalTranslationXProperty;
  public static readonly BindableProperty HoveredTranslationXProperty;
  public static readonly BindableProperty PressedTranslationXProperty;
  public static readonly BindableProperty NormalTranslationYProperty;
  public static readonly BindableProperty HoveredTranslationYProperty;
  public static readonly BindableProperty PressedTranslationYProperty;
  public static readonly BindableProperty NormalRotationProperty;
  public static readonly BindableProperty HoveredRotationProperty;
  public static readonly BindableProperty PressedRotationProperty;
  public static readonly BindableProperty NormalRotationXProperty;
  public static readonly BindableProperty HoveredRotationXProperty;
  public static readonly BindableProperty PressedRotationXProperty;
  public static readonly BindableProperty NormalRotationYProperty;
  public static readonly BindableProperty HoveredRotationYProperty;
  public static readonly BindableProperty PressedRotationYProperty;
  public static readonly BindableProperty AnimationDurationProperty;
  public static readonly BindableProperty AnimationEasingProperty;
  public static readonly BindableProperty PressedAnimationDurationProperty;
  public static readonly BindableProperty PressedAnimationEasingProperty;
  public static readonly BindableProperty NormalAnimationDurationProperty;
  public static readonly BindableProperty NormalAnimationEasingProperty;
  public static readonly BindableProperty HoveredAnimationEasingProperty;
  public static readonly BindableProperty PulseCountProperty;
  public static readonly BindableProperty IsToggledProperty;
  public static readonly BindableProperty DisallowTouchThresholdProperty;
  public static readonly BindableProperty NativeAnimationProperty;
  public static readonly BindableProperty NativeAnimationColorProperty;
  public static readonly BindableProperty NativeAnimationRadiusProperty;
  public static readonly BindableProperty NativeAnimationShadowRadiusProperty;
  public static readonly BindableProperty NormalBackgroundImageSourceProperty;
  public static readonly BindableProperty HoveredBackgroundImageSourceProperty;
  public static readonly BindableProperty PressedBackgroundImageSourceProperty;
  public static readonly BindableProperty BackgroundImageAspectProperty;
  public static readonly BindableProperty NormalBackgroundImageAspectProperty;
  public static readonly BindableProperty HoveredBackgroundImageAspectProperty;
  public static readonly BindableProperty PressedBackgroundImageAspectProperty;
  public static readonly BindableProperty ShouldSetImageOnAnimationEndProperty;
}

Usage Syntax

<Button TouchEffect.PressedScale="3">
</Button>

C# Usage

var button = new Button();
TouchEffect.SetPressedScale(button, 3);

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:58
  • Comments:47 (18 by maintainers)

github_iconTop GitHub Comments

16reactions
pictoscommented, Jul 4, 2023

Hey people, don’t have a Date for you right now, but I’ll jump on this one right after I finish the status bar implementation (should have a PR during this week). If the port goes well we can have this soonsh

15reactions
pictoscommented, Nov 15, 2022

@KSemenenko this is in WIP mode, I’m working this. Thanks

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to use Maui TouchEffect? - Microsoft Q&A
There is a proposal to include this in the MAUI Community Toolkit. Do you want to add long click event just for Gird...
Read more >
AndreiMisiukevich/TouchEffect
This plugin provides opportunity to create views with touch effects without using TapGestureRecognizer. It makes it possible to change the appearance of any ......
Read more >
MAUI Touch Event - Microsoft Q&A
Forms Effects to add the effect into MAUI. In addition, there is a proposal to include this in the MAUI Community Toolkit- Proposal...
Read more >
Send a Digital Touch effect in Messages on iPhone
In Messages on iPhone, use Digital Touch to send animated sketches, taps, kisses, heartbeats, and more.
Read more >
Send a Digital Touch effect in Messages on iPad
In Messages on iPad, use Digital Touch to send animated sketches, taps, kisses, heartbeats, and more.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found