windows phone 瞭解LinearGradientBrush類和RadialGradienBrush類(11)

來源:互聯網
上載者:User

 

我們瞭解到在能在xaml中完成的設計,一般在隱藏檔案中也可通過程式碼完成;本節中的案例是實現對同一設計效果的不同寫法;例如在隱藏檔案中代碼如下:

using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;using Microsoft.Phone.Controls;namespace LinearGB{    public partial class MainPage : PhoneApplicationPage    {        // 建構函式        public MainPage()        {            InitializeComponent();            Init();        }        private void Init()        {            TextBlock tb = new TextBlock();            tb.Name = "tbName";            tb.Text = "顯示顏色";            tb.VerticalAlignment = VerticalAlignment.Center;            tb.HorizontalAlignment = HorizontalAlignment.Center;            //執行個體化            //LinearGradientBrush lgb1 = new LinearGradientBrush();            LinearGradientBrush lgb2 = new LinearGradientBrush();                      GradientStopCollection gsc = new GradientStopCollection();            //設定過渡點的顏色和位移量            GradientStop gt1 = new GradientStop();            //Color c = new Color();            //c.R = 255;            //c.A = 230;            //c.G = 22;            //c.B = 43;            //gt1.Color=c;            gt1.Color = Color.FromArgb(255, 164, 143, 112);            gt1.Offset = 0.2;            gsc.Add(gt1);            GradientStop gt2 = new GradientStop();            //Color c2 = new Color();            //c2.R = 251;            //c2.A = 231;            //c2.G = 12;            //c2.B = 13;            //gt2.Color = c2;            gt2.Color = Color.FromArgb(229, 178, 234, 188);            gt2.Offset = 0.7;            gsc.Add(gt2);            //設定線性漸層色的起始座標            Point p1 = new Point(0, 0);            lgb2.StartPoint = p1;            //設定線性漸層色的終止座標            Point p2 = new Point(1, 1);            lgb2.EndPoint = p2;            //設定漸層停止點            lgb2.GradientStops = gsc;            //設定前景色彩            tb.Foreground = lgb2;            ContentPanel.Children.Add(tb);        }}}

 上面代碼實現的效果:

 從xaml檔案中同樣也可以實作類別似的效果,ContentPanel下的textblock內容如下:

<TextBlock x:Name="tbName" Text="顯示顏色" VerticalAlignment="Center" HorizontalAlignment="Center" >                <TextBlock.Foreground>                    <LinearGradientBrush StartPoint="0 0" EndPoint="1 1">                        <LinearGradientBrush.GradientStops>                        <GradientStopCollection>                            <GradientStop Offset="0.2" Color="AliceBlue"></GradientStop>                            <GradientStop Offset="0.7" Color="Brown"></GradientStop>                        </GradientStopCollection>                         </LinearGradientBrush.GradientStops>                    </LinearGradientBrush>                </TextBlock.Foreground>            </TextBlock>

實現的效果:

 兩種做法都是引入了LinearGradientBrush類,LinearGradienBush類是利用線性繪製顏色地區,隱藏代碼中已經有必要的文字注釋,官方的解釋和部分概念的理解如下:

 

官方解釋

LinearGradientBrush 使用線性漸層繪製地區。
線性漸層沿直線定義漸層。 該直線的終點由線性漸層的

StartPoint 和
EndPoint 屬性定義。 LinearGradientBrush 畫筆沿此直線繪製其

GradientStops。

預設的線性漸層是沿對角方向進行的。 預設情況下,線性漸層的

StartPoint 是被繪製地區的左上方值為 0,0 的
Point,其
EndPoint 是被繪製地區的右下角值為 1,1 的
Point。 所得漸層的顏色是沿著對角方向路徑插入的。

示範對角漸層。 其中添加了一條線,用於反白漸層從起點到終點的插入路徑。

對角方向的線性漸層

下一幅插圖顯示的是同一線性漸層,但它具有反白的漸層停止點。

具有反白的漸層停止點的對角線性漸層

 由於LinearGradientBrush和RadialGradienBrush都是有GradientBrush派生而來,所以很多屬性和LinearGradientBrush類的屬性相同;

 RadialGradienBrush類的執行個體代碼如下:

<TextBlock x:Name="tbRadia" VerticalAlignment="Center"  HorizontalAlignment="Center" Text="擴散式輻射">
                <TextBlock.Foreground>
                     <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"
        RadiusX="0.5" RadiusY="0.5">
        <GradientStop Color="Yellow" Offset="0" />
        <GradientStop Color="Red" Offset="0.25" />
        <GradientStop Color="Blue" Offset="0.75" />
        <GradientStop Color="LimeGreen" Offset="1" />
      </RadialGradientBrush>
                </TextBlock.Foreground>
            </TextBlock>

 :

 

放射狀漸層中的漸層停止點

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.