Following up on my earlier comment I found a solution. Instead of using On Key Down do the following:
- In your widget set input mode to Game And UI (this does not work with input mode UI Only)
- Create an Input Action Mapping in project settings to handle gamepad input from the D-pad
- In your widget call Listen For Input Action (this does not work with Axis mappings)
- From Listen for Input Action wire the Callback to a custom event that then handles the input
I’m using version 4.18, hopefully later versions will support axis mappings and support input mode UI Only. This video explains it well: WTF Is? Listen for Input Action in Unreal Engine 4 ( UE4 ) - YouTube