簡體   English   中英

Xamarin.Forms - 如何達到45度。 有角度的背景顏色

[英]Xamarin.Forms - How To Achieve 45 deg. Angled Background Color

使用Xamarin.Forms,如何在不使用圖像的情況下實現以下角度背景:

在此輸入圖像描述

沒有“自定義渲染器”的100% Xamarin.Forms涉及解決方案:

在下面的示例中,屏幕上Labels后面的半透明框的實心藍色部分是NControl ,您還可以執行漸變,簡單動畫等...但在這種情況下,只是在內部繪制一個實心多邊形一個半透明的矩形:

在此輸入圖像描述

通過NGraphics使用NControl您可以在不使用自定義渲染器的Xamarin.Forms中繪制自定義控件方面做很多事情。 它不是每個用例的解決方案,但它干凈且可以跨平台工作(iOS / Android / WinPhone)。

var overlay = new NControlView()
{
    BackgroundColor = Xamarin.Forms.Color.Black.MultiplyAlpha(.3f),
    DrawingFunction = (canvas, rect) =>
    {
        canvas.FillPath(new PathOp[] {
            new MoveTo (NGraphics.Point.Zero),
            new LineTo ((rect.Width / 3), 0),
            new LineTo ((rect.Width / 3) * 2, rect.Height),
            new LineTo (0, rect.Height),
            new ClosePath ()
        }, Colors.Blue);
    }
};

使用較重的alpha設置呈現Red ,以便您可以更好地查看控件:

在此輸入圖像描述

此控件嵌入在使用動態邊界的AbsoluteLayout ,因此即使方向更改也可以干凈地處理:

AbsoluteLayout.SetLayoutFlags(overlay, AbsoluteLayoutFlags.All);
AbsoluteLayout.SetLayoutBounds(overlay, new Xamarin.Forms.Rectangle(0, 1, 1, 0.3));

在此輸入圖像描述

無法在Xamarin Forms中定義漸變。 你最好的選擇是使用圖像。 但是,您也可以嘗試編寫使用底層平台API繪制漸變背景的自定義渲染器。

這是一個討論使用自定義渲染器方法的線程

暫無
暫無

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

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