簡體   English   中英

更改矩形Windows Phone 8的顏色

[英]Change the Color of a Rectangle Windows Phone 8

我正在創建具有矩形網格的Windows Phone 8應用程序。 每個矩形都使用fill屬性以一種特定的顏色開始。 我希望能夠通過點擊它來更改矩形的顏色,但是,我找不到從C#代碼端修改fill屬性的方法。 有沒有辦法使之成為可能? 我已經看到了許多有關Brush類的信息,但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"/>

這樣的事情應該可以解決問題。 顯然,您需要將純色畫筆的顏色設置為所需的顏色。

    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;
    }

實現此目的的最佳方法是為頁面創建ViewModel並將矩形Fill屬性綁定到該屬性。

例如

<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"/>

您要么為ViewModel中的每個矩形都需要一個屬性,要么更優雅一些,您要綁定到頁面的ViewModel中有一個矩形集合,以便在頁面上呈現矩形(因此,您不需要以手動添加每個)。 集合中的每個矩形對象都將是一個ViewModel對象,該對象將引發相應的Property Changed事件,因此,在對tap事件進行設置時,您的XAML會使用對Fill color屬性的任何更改自動更新自身。

ViewModel非常值得在Windows Phone中進行學習,因為它們可以消除大量手動代碼管道,從而使工作變得更加輕松,並使您的代碼更整潔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM