ようやくエンベロープ表示が完成した。
エンベロープグラフは、結局ユーザコントロールを作成した。
Canvas中にPolyline+データバインディングを使用して表示している。
http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/SFXMTracker/Envelope.xaml?rev=18&root=sfxmtracker&view=markup
エンベロープグラフを描画するとき、もともとの座標データはカスタムPointクラスなので、Converterを使用してWPFのPointデータに変換している。
その際、Canvasの描画領域に応じて座標変換をするため、ConverterParameterにCanvasオブジェクトを渡したかったのだが、やり方がどうもわからない。
とりあえずはMultiBindingにして、データの中にCanvasのインスタンスを埋め込むやり方で進めることにした。
http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/SFXMTracker/Envelope.xaml.cs?rev=20&root=sfxmtracker&view=markup