My workaround was constructing it as Object instead Widget, it will ask you for an outer, but you can create a function/event that receives any actor as parameter.
As you can see, someone calls the UObject and asks it to create a button.
And that’s it.
If you CAN’T pull the CanvasPanel reference pin from your widget it is because is not public. Remember to tick the checkbox in: Is Variable