2014-07-08 4 views
1

사각형의 격자가있는 Windows Phone 8 응용 프로그램을 만들고 있습니다. 각 사각형은 fill 속성을 사용하여 특정 색상에서 시작합니다. 나는 사각형을 클릭하여 사각형의 색상을 변경하고 싶지만, C# 코드면에서 채우기 속성을 수정할 수있는 방법을 찾을 수 없습니다. 이것을 가능하게하는 방법이 있습니까? Brush 클래스에 대한 많은 정보를 보았지만 Windows Phone 8에서는 지원되지 않는 것 같습니다.사각형의 색 변경 Windows Phone 8

xaml 예제.

<Rectangle x:Name="mon9a" Fill="#FFD69F50" HorizontalAlignment="Left" Height="48" Margin="58,94,0,0" Stroke="Black" VerticalAlignment="Top" Width="73" Tap="mon9a_Tapped"/> 

답변

1

트릭을해야합니다. 분명히 solidcolourbrush의 색상을 원하는 색상으로 설정해야합니다.

private void rectangle_Tap(object sender, System.Windows.Input.GestureEventArgs e) 
    { 
     // Change this colour to whatever colour you want. 
     SolidColorBrush mySolidColorBrush = new SolidColorBrush(); 
     mySolidColorBrush.Color = Color.FromArgb(255, 255, 255, 0); 

     System.Windows.Shapes.Rectangle rect = (System.Windows.Shapes.Rectangle)sender; 
     rect.Fill = mySolidColorBrush; 
    } 
+0

Windows Phone 8에서는 SolidColorBrush가 지원되지 않는 것 같습니다. – Mr404servererror

+0

예입니다. System.Windows.Media 네임 스페이스에 있습니다. 'System.Windows.Media를 사용하여'을 추가하십시오. 클래스의 상단에서 사용하는 것 – JayDev

+0

마침내! 정말 고맙습니다! 나는이 브러시 주위를 돌고있는 수많은 코드를보고 있었고, 그들이 작동하지 않는 방법이 조금 이상하다고 생각했습니다. 다시 한번 감사드립니다. – Mr404servererror

0

페이지의 뷰 모델을 만들고 사각형이 속성에 속성을 채우기 결합하는 것입니다 이것을 달성하는 가장 좋은 방법.

예.

<Rectangle x:Name="mon9a" Fill="{Binding MyFillProperty, Mode=OneWay}" HorizontalAlignment="Left" Height="48" Margin="58,94,0,0" Stroke="Black" VerticalAlignment="Top" Width="73" Tap="mon9a_Tapped"/> 

당신 중 하나는 뷰 모델의 각 사각형에 대한 속성이 필요하거나 좀 더 우아하게 당신은 페이지에 사각형을 렌더링하기 위해 당신이 순서에 구속력이 페이지의 뷰 모델에서 사각형의 컬렉션을 가질 것 (따라서 수동으로 각각을 추가 할 필요가 없습니다). 컬렉션의 이러한 사각형 개체 각각은 적절한 Property Changed 이벤트를 발생시키는 ViewModel 개체이기도하므로 탭 이벤트에 설정할 때 Fill 색 속성의 변경 사항으로 XAML이 자동으로 업데이트됩니다.

ViewModels는 많은 수의 수동 코드 배관을 제거하여 삶의 편의성을 높이고 코드를보다 깨끗하게 유지할 수 있도록 Windows Phone을 배우는 데 많은 노력을 기울일 가치가 있습니다.