Button と ContentPresenter を含むカスタム wpf コントロールを作成したいと考えています。WPF コントロールはルックレスであると想定されているため、コントロールの動作を含むと想定されるクラスを作成し、generic.xaml ファイル内にコントロールのデフォルト スタイルを配置しました。ここまでは順調ですね。
しかし、ボタンでイベント (ルーティング イベント?) を発生させ、それをコントロールのクラスで処理するにはどうすればよいでしょうか? Generic.xaml から ResourceDictionary のコード ビハインド ファイルを追加し、そこにイベント ハンドラーを配置できることがわかりましたが、それではコントロールの動作がテンプレートに関連付けられるため、望ましくありません。私が見た (まだ試していない) もう 1 つのアイデアは、TemplatePart メカニズムを使用してテンプレート内のいくつかの主要なコントロールを見つけ、コード内のイベントをサブスクライブすることです。しかし、私のコントロールのユーザーが、コントロールの設計時に私が知っているイベントを持たないコントロールにボタンを置き換えたいと思うかもしれないので、それは私にとって十分に柔軟ではないようです。
では、ボタンがクリックされたときに XAML でイベントを発生させ、コントロールのコード ファイルでサブスクライブするにはどうすればよいでしょうか。