C#コントロール名によるコントロールオブジェクトの取得


需要:1つのプロジェクトで、1つのコントロール選択機能を実現するには、1つずつ判断すると、コードは非常に見苦しくなります.コントロール名に規則があるため、コントロールに基づいて直接対応するコントロールオブジェクトを見つけることができますか?
インプリメンテーション:反射の使用はんしゃのしよう
WPFで使用可能:
object o = this.GetType().GetField(name, System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.IgnoreCase).GetValue(this);   
            return ((Control)o); 

Winformで使用可能:
        private void button2_Click(object sender, EventArgs e)
        {
            ((Button)(this.Controls.Find("button1", false)[0])).Text = "123";
        }

WPFはControlsに似ている.Find:
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ((Button)this.FindName("Button1")).Content = "123";
        }