Install
$ agentstack add skill-davidortinau-maui-skills-maui-gestures ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
.NET MAUI Gesture Recognizers
Deprecated API Warning
> ⚠️ In .NET 10, ClickGestureRecognizer is deprecated. Use > TapGestureRecognizer (touch/stylus) and PointerGestureRecognizer > (mouse hover/press) instead.
Common Mistakes
One SwipeGestureRecognizer per direction
A single recognizer handles only one direction. Adding multiple directions to one recognizer silently fails on most platforms.
AllowDrop defaults to false
Drop targets silently ignore drops if you forget this property.
Using TapGestureRecognizer for hover effects
Tap recognizers don't track pointer movement. Use PointerGestureRecognizer for hover effects — it also enables the PointerOver visual state.
Platform Differences That Bite
Pan delta coordinates differ by platform
| Platform | TotalX / TotalY relative to | |---|---| | iOS / Mac Catalyst | Start of gesture | | Android | Previous event (not start!) | | Windows | Start of gesture |
If sub-pixel accuracy matters, normalize Android deltas by accumulating them manually rather than using TotalX/TotalY directly.
Pointer hover is mouse/trackpad only
On touch devices, PointerGestureRecognizer events fire on press/release but hover is not tracked between touches. Don't rely on PointerMoved for touch-based UI.
Cross-app drag-and-drop
| Platform | Supported | |---|---| | iPadOS / Mac Catalyst | ✅ Yes | | Windows | ✅ Yes | | Android | ❌ No |
Secondary button (right-click)
| Platform | Behaviour | |---|---| | iOS / Mac Catalyst | Buttons = ButtonsMask.Secondary works | | Windows | Buttons = ButtonsMask.Secondary works | | Android | Falls back to long-press — no true right-click |
Gesture Combination Conflicts
Combining pan + swipe on the same view conflicts on Android — the swipe may consume the gesture before pan starts. Test on all platforms, or use only one at a time.
Combining tap + pan works well — tap fires on quick taps, pan fires on sustained drags.
MVVM Best Practice
Prefer commands over events for testable view models. Both work identically at runtime, but commands are easier to mock and test.
Quick Rules
- One
SwipeGestureRecognizerper direction PointerGestureRecognizerfor hover, notTapGestureRecognizerAllowDrop="True"on drop targets — it defaults tofalse- Normalize pan deltas on Android (relative to previous event, not start)
- Prefer commands over events for MVVM
- Use
TapGestureRecognizerinstead of deprecatedClickGestureRecognizer(.NET 10) - Don't rely on
PointerMovedfor touch-based UI — hover doesn't track
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: davidortinau
- Source: davidortinau/maui-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.