Hi Ken,
Controls will often move focus elsewhere or close popups if they are clicked while within a focus scope. That is something that is hardcoded in many native WPF controls, in our own controls, and other third party controls.
When we see that our property is set on our versions of ButtonBase and ComboBox, we specifically skip the code that restores focus outside of the focus scope or closes popup. It's not something that can really be done externally by handling PreviewMouseLeftButtonDown and handling it because most controls actually require you to fully click (press and raise) within a control to be a true click. The functionality feels awkward otherwise. That's why it's mostly necessary for those writing custom controls to choose on their end not to move focus around, etc. if a property such as StaysOpenOnClick is assigned.