WPFにColorDialogがない

仕方ないので無理やりWindowsフォームのColorDialogを使ってみる

  • ソリューションエクスプローラにある"参照設定"を右クリックして"参照の追加"をクリック
  • .NETタブの"System.Winodows.Forms"をクリックしてOKボタンを押す
  • ソースを書く(ちなみにInkCanvasのペンの色の変更に利用した)
using System.Windows.Forms;

ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    System.Windows.Media.Color color = 
    System.Windows.Media.Color.FromArgb(cd.Color.A, 
                                        cd.Color.R, 
                                        cd.Color.G, 
                                        cd.Color.B);
    inkCanvas.DefaultDrawingAttributes.Color = color;
}

System.Drawing.ColorSystem.Windows.Media.Colorの違いに注意すれば表示できる