xamarin - 如何更改 Xamarin Forms 中进度条的高度?

标签 xamarin xamarin.forms

如何更改 Xamarin 表单的高度 ProgressBar在代码中?我正在使用 Xamarin Forms V2.1。
.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);
        Control.Transform = transform;
    }
}

[编辑:根据评论固定上面的代码]

对于安卓:
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

    }
}

我希望这可以帮助你!

关于xamarin - 如何更改 Xamarin Forms 中进度条的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36660605/

相关文章:

ios - 滚动时如何使导航栏保持在屏幕顶部?

mono - 如何为 AndroidGameView 启用抗锯齿 (4X MSAA)?

c# - 如何使用 Xamarin iOS 在 MugenMvvm 中使用自定义控件绑定(bind)到事件

android - 在焦点监听器中更改复合可绘制对象时,EditText 会无限触发焦点更改事件

azure - Xamarin 通知推送 TodoItemManager

c# - Xamarin 入口控件 TextChanged 事件循环

ios - Xamarin Forms - TapGestureRecognizer 不适用于 iOS

c# - 使用 Xamarin.Auth 进行 OAuth2 身份验证 - 用户名和密码?

listview - Xamarin 和 MVVM 如何?

ios - 在 iOS 中禁用父自定义控件中的手势