5569


LabelのBackgroundを、System.Windows.Forms.ColorDialogのcolorに適用したいです。  
方法が分かる方がいましたら、ご教授をお願いします。


CC BY-SA 3.0
2015-01-29T10:48:37.197
5568
2015-01-29T11:26:49.980
7626
question
c# wpf
LabelのBackgroundを、ColorDialogのcolorに適用したいです


`Label`の背景は単色とは限りませんが、`SolidColorBrush`であれば

[code]

    var scb = label.Background as SolidColorBrush;
    if (scb!=null)
    {
        var c = scb.Color;
        var gdipColor = System.Drawing.Color.FromArgb(c.A, c.R, c.G, c.B);
    }
    
[/code]

と`System.Drawing.Color`に変換できると思います。

またWPFとWindows
Formsダイアログを相互運用する場合、`WindowInteropHelper`を使用して`IWin32Window`を実装します。

[code]

    class MainWindow : Window, System.Windows.Forms.IWin32Window
    {
        public IntPtr Handle
        {
            return new WindowInteropHelper(this);
        }
    }
    
[/code]

こうすることで`ShowDialog()`時に`Owner`としてWPFウィンドウが指定できます。


CC BY-SA 3.0
2015-01-29T10:56:40.847
5569
2015-01-29T11:26:49.980
2015-01-29T11:26:49.980
5750
5750
5568
answer


WPFでは、System.Windows.Media名前空間を使用します。

[Color 構造体](https://msdn.microsoft.com/ja-
jp/library/system.windows.media.color%28v=vs.110%29.aspx)

System.Drawing名前空間は、Windowsフォーム用であるため、WPFでは、使用しません。


CC BY-SA 3.0
2015-01-29T11:16:02.433
5570
2015-01-29T11:16:02.433
2207
5568
answer