Xamarin颜色条宽度可变

时间:2015-10-27 14:55:41

标签: colors xamarin xamarin.forms

我想询问是否有任何方法可以在Xamarin中制作一条颜色。具有可变宽度的表格?我现在已经搜索了几天,但无法找到任何有关此问题的话题。在我的应用中,我有一系列人的体重:正常(黄色)100磅到200磅,低于100磅(绿色),200磅超重(红色)。让我们说最小和最大重量是0磅 - 300磅,显示为带有 BoxView 的白色条,一个人的体重是160磅,正在传递给我来自数据库。我想知道如何在绿色条中显示这个人的体重,其宽度是该人的体重。以下是我试图做的事情的图像。如何处理这个问题的任何指针?

enter image description here

2 个答案:

答案 0 :(得分:0)

我会尝试使用AbsoluteLayout,RelativeLayout或Grid将3个不同的BoxView叠加在一起:

  1. 外框黑框
  2. 内部白色盒子"未填充"部分
  3. "进展的绿色框"部分
  4. 您可以将绿色层叠在白色顶部,或者尝试将它们放在一起。

答案 1 :(得分:0)

好吧,你可以通过改变它并使其成为可绑定属性并在其更改上重绘项目。据我所知,在Xamarin Forms BoxView中,WidthRequest已经是一个可绑定的属性,但在此属性更改后,我看不到它在渲染器中重绘元素。所以你应该创建一个继承的类,并在它的渲染器中执行类似这样的操作

    protected override void OnElementPropertyChanged(
        object sender, 
        PropertyChangedEventArgs e)
    {
        base.OnElementPropertyChanged(sender, e);

        if (e.PropertyName == VisualElement.WidthRequestProperty.PropertyName
|| e.PropertyName == VisualElement.WidthProperty.PropertyName)
        {
            this.SetNeedsDisplay();
        }
    }
相关问题