UserControl1.Focus(this)は都合が悪いだろ。タイミングはUserControl1側が握ってるんだから。
コントロールにウィンドウを渡すならこんな感じ
interface IFocusable { void Focus(); }
class MyWindow : IFocusable {
 void Window_Loaded(object sender, EventArgs e) { this.userControl1.FocusTarget = this; }
 void IFocusable.Focus() { this.Focus(); }
}
class UserControl1 {
 public IFocusable FocusTarget { get; set; }
 void button1_Click(object sender, EventArgs e) { this.FocusTarget.Focus(); }
}