If you try this with a button it will consume the input and not call the NativeOnMouseButtonDown() Function. I know this from experience in the past. Its often easier to just use a border over using a button for reasons like that. You also don’t have to mess with button callbacks to change the brush of the button.
This is just one way of doing it. Using a button is completely fine. I have had headaches in the past when I wanted to add a new UI feature and buttons really messed it up. Example: Drag and Drop for a inventory system. You will have to do more elaborate things with the super Reply if you decide to do Drag and drop though.
Here is my code and how I managed to use Sam’s included button images as backgrounds on my Lobby entries. This works as of Engine Version 5.0.1.