2016-04-03 8 views
0

C#WPFでinkcanvasを使用して簡単なペイントプログラムを作成しています。 私はXceedWpfToolkitを使用しています。それはうまくいく。inkcanvasの色が変更されたときに、Null例外エラーが発生しました。colorpicker_SelectedColorChanged()

私はinkcanvasのペンストロークカラーをcolorpickerで変更すると、何か問題があります。

null例外エラーは、イベントcolorpicker_SelectedColorChanged()でのみ発生します。他のイベントでは、コードの下でうまく動作します。

 inkcanvas1.DefaultDrawingAttributes.Color = mypenbrush.Color; 

私はmypenbrush.ColorがNullではないことを確認しました。それはvauleを持っています。 しかし、以下のコードではエラーが発生しています( "only in EVENT colorpicker_SelectedColorChanged()")。 3時間の間、私はなぜそれを見ようとします。しかし、今まで私は知らない。ここで

private void colorpicker1_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color?> e) 
    { 
     mypenbrush = new SolidColorBrush(); 
     mypenbrush.Color = (Color)colorpicker1.SelectedColor; 
     inkcanvas1.DefaultDrawingAttributes.Color = mypenbrush.Color; 
    } 

はXAML

<xctk:ColorPicker x:Name="colorpicker1" Width="60" ShowRecentColors="True" SelectedColor="Black" SelectedColorChanged="colorpicker1_SelectedColorChanged" ShowAvailableColors="False"/> 

答えて

1

でカラーピッカーの設定である私は、簡単なテストを行なったし、私が気づいたことは、私が最初にプロジェクトを起動したときInkCanvas「のhasnながら、ColorPicker_SelectedColorChangedイベントが呼び出されるということですまだロードされていないので、まだヌルです。これがエラーの原因です。

InkCanvasがPenBrushを割り当てる前にInkCanvasがnullでないかどうかを確認すると、正常に動作します。

private void ColorPicker_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color?> e) 
{ 
    myPenBrush = new SolidColorBrush(); 
    myPenBrush.Color = (Color)colorpicker1.SelectedColor; 

    if (myInkCanvas != null) 
     myInkCanvas.DefaultDrawingAttributes.Color = myPenBrush.Color; 
} 
+0

私はその考え方について決して考えなかった。本当にありがとう〜!!あなたの答えは私の地平を広げる。そして私の低い評判に申し訳なく思うが、私は投票をすることができない。ありがとう〜 – randomwalk1225

関連する問題