操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    文告訴大家如何在 win2d 使用漸變顏色

    線條漸變

    在 UWP 的 Win2d 使用漸變顏色需要 CanvasLinearGradientBrush 做顏色,本文告訴大家如何在 win2d 使用 CanvasLinearGradientBrush 做漸變。

    漸變的顏色可以嘗試打開任意一個控件,查看屬性,就可以知道漸變的效果

    漸變效果是漸變開始點,漸變結束點作為線性的漸變,也就是從點的開始到點的結束漸變。

    中間在偏移多少的點,設置為中間顏色,這樣兩個顏色之間就會出現漸變的效果。如上面的圖,只有第一個點和第二個點,兩個點的顏色不相同,所以中間就會出現漸變的顏色。

    在 win2d 漸變相對的是整個畫布的顏色,也就是設置漸變的開始點不是相對于使用漸變的元素,而是畫布的坐標。

    請看圖,使用的漸變是從(100,10)到(1000,1000),元素是從(300,100)開始畫,元素的寬度是 300 高度是 200 ,所以實際上元素使用的漸變不是從開始的漸變開始算,而是拿到漸變的對應元素所在顏色

    使用 CanvasLinearGradientBrush 需要 CanvasGradientStop 做中間的顏色,表示在相對于第一個點到最后一個點的多少顏色。

    如使用下面代碼,就是第一個點是白色,最后一個點是黑色。注意 Position 的范圍是 0-1 ,也就是 0 就是第一個點,而 1 就是最后一個點

     var canvasGradientStop = new CanvasGradientStop[2];
     canvasGradientStop[0] = new CanvasGradientStop
     {
     Position = 0,
     Color = Colors.White
     };
     canvasGradientStop[1] = new CanvasGradientStop()
     {
     Position = 1,
     Color = Colors.Black
     };
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    

    創建 CanvasLinearGradientBrush 需要 CanvasResourceCreator ,建議使用 win2d 的畫板作為輸入。

     private void CanvasControl_OnDraw(CanvasControl sender, CanvasDrawEventArgs args)
     // 忽略代碼
     var canvasGradientStop = new CanvasGradientStop[2];
     canvasGradientStop[0] = new CanvasGradientStop
     {
     Position = 0,
     Color = Colors.White
     };
     canvasGradientStop[1] = new CanvasGradientStop()
     {
     Position = 1,
     Color = Colors.Black
     };
     var canvasLinearGradientBrush = new CanvasLinearGradientBrush(sender, canvasGradientStop)
     {
     StartPoint = new Vector2(0, 0),
     EndPoint = new Vector2(0, 1000)
     };
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    

    這里開始的點和結束的點都是相對于畫布的坐標,而不是相對于使用顏色的元素。

    這時創建一個矩形使用顏色,先設置他的坐標是 200,200,在點擊按鈕的時候移動矩形,可以看到矩形在移動的時候顏色在變化

     args.DrawingSession.FillRectangle(new Rect(X, Y, 300, 300), canvasLinearGradientBrush);
    1
    

    如果需要在元素內做元素漸變,就需要修改 CanvasLinearGradientBrush 的 StartPoint 和 EndPoint,讓 StartPoint 為元素的左上角加上的值。

    也就是在原先的開始和最后的點都加上元素才可以進行元素的變化。

    例如矩形是已知的,想要讓矩形從上到下是漸變,就可以使用下面代碼

     var rect = new Rect(X, Y, 300, 300);
     var canvasLinearGradientBrush = new CanvasLinearGradientBrush(sender, canvasGradientStop)
     {
     StartPoint = new Vector2(X, Y),
     EndPoint = new Vector2(X, (float) (Y+rect.Height))
     };
     args.DrawingSession.FillRectangle(rect, canvasLinearGradientBrush);
    1
    2
    3
    4
    5
    6
    7
    8
    9
    

    從上面代碼可以知道畫出來的漸變需要開始的點和結束的點都是從 rect 計算,這樣才可以做元素內的漸變

    全部代碼

    xaml

     xmlns:win2d="using:Microsoft.Graphics.Canvas.UI.Xaml"
     忽略的代碼
     <win2d:CanvasControl Draw="CanvasControl_OnDraw"></
    1
    2
    3
    4
    5
    

    相信大家都可以創建一個 win2d 的控件,如果還不知道如何創建,請看win10 uwp win2d 入門 看這一篇就夠了

    在后臺代碼

     private void CanvasControl_OnDraw(CanvasControl sender, CanvasDrawEventArgs args)
     {
     var canvasGradientStop = new CanvasGradientStop[2];
     canvasGradientStop[0] = new CanvasGradientStop()
     {
     Position = 0,
     Color = Colors.White
     };
     canvasGradientStop[1] = new CanvasGradientStop()
     {
     Position = 1,
     Color = Colors.Black
     };
     var rect = new Rect(X, Y, 300, 300);
     var canvasLinearGradientBrush = new CanvasLinearGradientBrush(sender, canvasGradientStop)
     {
     StartPoint = new Vector2(X, Y),
     EndPoint = new Vector2(X, (float) (Y + rect.Height))
     };
     args.DrawingSession.FillRectangle(rect, canvasLinearGradientBrush);
     }
     private float X { set; get; } = 200;
     private float Y { set; get; } = 200;
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    

    圓圈漸變

    從上面的線條漸變可以知道使用的坐標都是畫布,在圓圈也是,下面給大家看一下圓圈做出來的圖片

    使用這個顏色需要使用 CanvasRadialGradientBrush ,在創建的使用需要傳入 CanvasResourceCreator 因為在 win2d 控件的畫函數,所以使用下面代碼

     var canvasRadialGradientBrush = new CanvasRadialGradientBrush(sender, canvasGradientStop);
    1
    

    這里的 canvasGradientStop 還是上面的 canvasGradientStop ,但是需要知道這里的 Position 對應的是從圓心到最外面。

     var canvasGradientStop = new CanvasGradientStop[2];
     canvasGradientStop[0] = new CanvasGradientStop
     {
     Position = 0,
     Color = Color.FromArgb(255, 210, 200, 162)
     };
     canvasGradientStop[1] = new CanvasGradientStop()
     {
     Position = 1,
     Color = Colors.Black
     };
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    

    所以我設置了圓心為 #D2C8A2 顏色,把最外面寫為黑色,這樣就可以做出上面看到的顏色

    在圓圈需要設置圓心所在的坐標,這個坐標就是相對畫布的,所以不是相對元素

    為了讓矩形的中心設置的顏色,我需要修改代碼

     var canvasRadialGradientBrush = new CanvasRadialGradientBrush(sender, canvasGradientStop)
     {
     Center = new Vector2((float) (rect.X + rect.Width / 2), (float) (rect.Y + rect.Height / 2)),
     RadiusX = 300,
     RadiusY = 300
     };
    1
    2
    3
    4
    5
    6
    7
    

    因為可以使用橢圓,所以需要設置 RadiusX 就是圓的水平半徑和 RadiusY 這個我也不知道什么的值。

    這樣可以做出圓心在矩形中心,半徑為 300 的顏色,設置這個顏色,運行,就是上面的圖片

    參見:(圖形篇2) 幾何圖形CanvasGeometry

    本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。

    細數整個手機行業的發展,我們發現,自從喬布斯用滑動改變了手機固有的交互方式之后,手機似乎越來越趨于同一個方向發展,手機的差異化也變得越來越艱難。手機的材質更是經歷了從玻璃到金屬,又到玻璃的無限循環,整個行業也仿佛進入了一個很難創新的瓶頸期,而這個時期的產品都很難形成高度差異化。

    2018年,似乎手機審美的風向標又轉會了雙玻璃機身,而除了更加輕薄之外,如何做出高度差異化的產品也是整個行業一直在思考的問題。在榮耀10之前,整個行業似乎都沒有一款讓人眼前一亮的作品。直到榮耀漸變色的出現。

    世間本就沒有絕對純粹的顏色,顏色自然的過度才最令人著迷。榮耀10完美的將背部玻璃和極光漸變色相結合,在不同的光線條件下,甚至在不同的地點都能得到完全不同的顏色展現。這一特性完全符合現如今張揚個性的年輕人屬性,也讓這一代的榮耀10成為了一款不折不扣的“科技潮品”。

    榮耀10對于行業的思考使得漸變色成為了今年市場的新主流,也成就了今年科技的潮流風向,也讓榮耀年輕潮流的品牌形象更加深入人心,配合上榮耀一貫的超高品質,榮耀10也稱為真正屬于年輕人的“科技潮品”。年輕當然就要有不同的顏色,而顏色也成為了這個時代的新生命力。

    【戲金】成為越來越多人的代名詞,“人生如此,全靠演技”這也是年輕人對于生活切切實實的感慨,也是屬于這個年代的年輕人該有的活力。【剁手紅】象征著熱情,在這個紛擾的世界,敢愛敢恨,遇到喜歡的就瘋狂剁手,也是這個時代賦予年輕人的獨特魅力。【相青】已經讓綠色不再是“原諒綠”,這是一個已經連90后都需要“相親”被逼婚的時代,愿得一人心,免得總“相青”。此次榮耀也聯合京東用十種顏色描繪青春,聯合舉行超級品牌日打造屬于年輕人的狂歡!

    此次5月7日榮耀“十分好色”京東超級品牌日的活動力度可謂空前強大,作為明星機型的榮耀10也會在超品日上亮相,開啟新一輪的搶購模式,2599元起的售價也讓榮耀10在同價位段的競爭力空前,此次全面開啟搶購一定不容錯過。同時榮耀還與京東聯合開展了關注店鋪領取1000元手機優惠券的活動,同時榮耀的爆品立省500元,現在入手可謂非常劃算。

    對于榮耀的老款機型,榮耀V10通過領券后價格將低至2399元,而榮耀7A和7X的部分版本也分別由50元和100元的優惠。在10、16、20、22點購機還有機會贏DW手表一塊。力度空前的活動配合上本就很高的性價比,也讓榮耀產品在該價位的競爭力愈發強烈,也讓真正屬于年輕人的“科技潮品”遍布到更多的角落。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有