如何在代码中更改Xamarin Forms ProgressBar
的高度?我正在使用Xamarin Forms V2.1。如何更改Xamarin表单中进度条的高度?
.HeightRequest
和.MinimumHeightRequest
似乎没有效果。默认的进度条非常薄,甚至不会被注意到。
.BackgroundColor
似乎也不工作。
我在这里错过了什么?
如何在代码中更改Xamarin Forms ProgressBar
的高度?我正在使用Xamarin Forms V2.1。如何更改Xamarin表单中进度条的高度?
.HeightRequest
和.MinimumHeightRequest
似乎没有效果。默认的进度条非常薄,甚至不会被注意到。
.BackgroundColor
似乎也不工作。
我在这里错过了什么?
您需要自定义渲染了这一点:
首先创建一个类为您的自定义进度条:
public class CustomProgressBar :ProgressBar
{
public CustomProgressBar()
{
}
}
然后还添加了一个新的文件用于自定义进度条渲染:
对于iOS:
public class CustomProgressBarRenderer : ProgressBarRenderer
{
protected override void OnElementChanged(
ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e)
{
base.OnElementChanged(e);
Control.ProgressTintColor = Color.FromRgb(182, 231, 233).ToUIColor();// This changes the color of the progress
}
public override void LayoutSubviews()
{
base.LayoutSubviews();
var X = 1.0f;
var Y = 10.0f; // This changes the height
CGAffineTransform transform = CGAffineTransform.MakeScale(X, Y);
this.Transform = transform;
}
}
对于Android:
public class CustomProgressBarRenderer :ProgressBarRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e)
{
base.OnElementChanged(e);
Control.ProgressTintList = Android.Content.Res.ColorStateList.ValueOf(Color.FromRgb(182, 231, 233).ToAndroid()); //Change the color
Control.ScaleY = 10; //Changes the height
}
}
我希望这可以帮助你!
@BillF是正确的基本
在iOS的渲染代码尝试使用
this.Control.Transform = transform;
代替
this.Transform = transform;
非常感谢@kishang。为了让iOS渲染器工作,我需要更改this.Transform = transform;到Control.Transform = transform; - 还没有尝试过Android。 – BillF