I am not sure if this question should be answered because it will be more like an "opinion based" instead of a "technical answer". In short it is really unknown why it was not implemented... in long version ... it seems more intentional. Margins and docking are conceptually distinct—margins work well in layout engines like WPF, where flexibility and advanced layout features are baked in. In contrast, Windows Forms prioritizes straightforward functionality, with workarounds like using panel containers for spacing. Another aspect I think it is the complexity on how the layout engine calculates and handles control bounds, particularly during resize events. The trade-off between added complexity and actual developer need may have influenced the decision to omit this feature.