2014-11-29 2 views
0

사용자가 AppBar에 사용할 색을 선택할 수있게하려고합니다.어떻게하면 탭된 캔버스의 배경색을 추출 할 수 있습니까?

<StackPanel Orientation="Horizontal"> 
    <Canvas Background="Aqua" Width="20" Height="20" VerticalAlignment="Center" Tapped="CanvasColor_Tapped"></Canvas> 
    <TextBlock Text="Aqua" VerticalAlignment="Center"></TextBlock> 
</StackPanel> 
... 그리고 처리기에 대한 이러한 생각 : 나는과 같이 XAML있어

private void CanvasColor_Tapped(object sender, TappedRoutedEventArgs treArgs) 
{ 
    if (sender is Canvas) 
    { 
     Color colour = (Canvas) sender.Background; 
    } 

} 

을 ...하지만 컴파일러와 내 두개골은 동일하지 파장/협력하지 않습니다 . 구체적으로, 나는 다음을 얻습니다 :

'object'에는 'Background'에 대한 정의가없고 'Background'유형의 첫 번째 인수를 허용하는 'Background'를 찾을 수 있습니다 (using 지시문 또는 어셈블리 참조?)

모든 캔버스 컨트롤에서 이벤트 처리기를 공유하여 탭된 캔버스의 배경색을 추출하려면 어떻게해야합니까?

+0

((Canvas) 보낸 사람) 시도 했습니까? 배경? –

답변

1

괄호가 누락 된 것 같습니다.

Color colour = ((Canvas)sender).Background; 

컴파일러는 타입 object이다 sender 객체의 Background 재산을 찾고있다.

+0

닫기 : 실제로 무엇이 있어야만 했는가 : 브러시 hueOfTheElectroMagneticSpectrum = ((캔버스) 발신자). 배경; –

관련 문제