Maybe th modal underlay at dialogs is also what you are looking for:
https://github.com/esoui/esoui/blob/...dialog.xml#L72
It creates something like a black transparent overlay below the modal and you cannot click anything except the shown dialog.
The code is an animation and maybe you can use it as well (self = the dialog int his case, so it could be your TopLevelControl or fragment control here):
Lua Code:
if not self.animation then
self.animation = ANIMATION_MANAGER:CreateTimelineFromVirtual("DialogModalUnderlay", self)
end
self.animation:PlayFromStart()