【问题标题】:How to bind a color value to two colors and a percentage?如何将颜色值绑定到两种颜色和百分比?
【发布时间】:2016-08-03 07:01:24
【问题描述】:

这个问题很难概括……

假设我的 XAML 资源中有两个 Color 对象,StartEnd

我也有一个 Rectangle,我希望将他的 Fill 属性绑定到一个转换器,该转换器需要 3 个参数:2 种颜色和一个介于 0 和 1 之间的数字。

转换器将返回一个 Color 是......怎么说......它作为参数检索的两个 Color 的加权中位数。

例如,如果它接收到一个完整的红色、一个完整的蓝色和值 0.75,它将返回一个蓝紫色:

我对如何做到这一点没有想法。也许有更好的方法?

【问题讨论】:

    标签: c# wpf xaml colors


    【解决方案1】:

    看看 MultiBinding 和 IMultiConverter。有了这个,您可以使用转换器来绑定任意数量的属性来创建颜色。

    看看这里: http://blog.csainty.com/2009/12/wpf-multibinding-and.html

    【讨论】:

      【解决方案2】:

      这应该提供衰落逻辑:

      private System.Windows.Media.Color GetFadedColor(System.Windows.Media.Color start, System.Windows.Media.Color end, double ratio)
          {
              System.Diagnostics.Debug.Assert(ratio >= 0 && ratio <= 1);
              return System.Windows.Media.Color.FromArgb((byte)(start.A + (ratio * (end.A - start.A))), (byte)(start.R + (ratio * (end.R - start.R))), (byte)(start.G + (ratio * (end.G - start.G))), (byte)(start.B + (ratio * (end.B - start.B))));
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-23
        • 2021-08-07
        • 1970-01-01
        • 2023-03-14
        • 2013-04-27
        • 2022-01-02
        • 1970-01-01
        相关资源
        最近更新 更多