You are looking for a "launch or switch to" approach where clicking an item switches to the application if it is already running, or opens the application if it is not already running. The xfce slingshot menu and shortcut launchers currently are "always launch". The actual effect of the launch, however, depends on the application. Gimp, for example, will switch to the already running instance when launched again. Inkscape not. Firefox will switch to a running instance and open a new tab there. Some applications provide command line options to control such aspects while launching the executable.
You can indeed install a dock which implements that. However, that is a different interface, and usually only mouse supported. You may prefer the native environment of xfce.
I recently ran into a tool "jumpapp":
https://github.com/mkropat/jumpapp. It can be used to make any application you want "launch and switch to" aware. One way is to edit the .desktop files of the applications you want to acquire that behaviour, which is what launchers and slingshot or other menu systems in xfce are using.
The neatest way is to just copy these .desktop files you want to change to your private .local/share/applications folder. Open the file in a text editor, look for the "Exec=" line. Insert "jumpapp" before the current command. Your desktop environment will now use your private modified .desktop file instead of the system wide version.
Bookmarks