You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin.Forms的C#代码中用Double参数设置BoxView颜色?

在Xamarin.Forms的C#代码中使用Double参数创建Color对象

没问题,这其实是因为Color类的FromRgb方法有多个重载版本,你之前用的是接受**0-255整数(byte类型)的重载,而XAML里你尝试的是接受0.0-1.0浮点数(double类型)**的重载。在C#里我们只需要明确调用这个double参数的重载就行。

正确的C#实现代码

把你原来的Color赋值部分替换成下面的写法,就能和XAML里的Double参数版本完全对应:

this.Content = new ScrollView {
  Content = new StackLayout {
    Children = {
      new BoxView{
        // 使用double类型的FromRgb重载,参数范围0.0到1.0
        Color = Color.FromRgb(1.0, 0.0, 0.0),
        HeightRequest = 100,
        HorizontalOptions = LayoutOptions.Center,
        VerticalOptions = LayoutOptions.CenterAndExpand,
        WidthRequest = 100
      }
    }
  }
};

关键说明

  • XAML里通过指定<x:Double>类型,会自动匹配Color.FromRgb(double, double, double)这个重载;
  • 在C#中,如果你直接写Color.FromRgb(1, 0, 0),编译器会默认匹配接受byte类型的重载(因为1是整数,会被隐式转换为byte),这和你想要的浮点版本不是同一个方法;
  • 只要给参数加上小数部分(比如1.0),或者明确标记为double(比如1d),编译器就会正确调用double参数的重载,和XAML的效果完全一致。

内容的提问来源于stack exchange,提问作者TheGame1083

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 14:02:40