Если вы хотите использовать кисти в XAML, может быть DataTrigger является то, что вы хотите.
С триггерами вы можете динамически изменять стили. В этом примере я меняю заливки прямоугольника свойства, на основе приоритета стоимости недвижимости:
<Grid>
<Grid.Resources>
<LinearGradientBrush x:Key="HighPriorityBrush" EndPoint="1,0.5" StartPoint="0,0.5">
<GradientStop Color="DarkRed" />
<GradientStop Color="Orange" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="NormalPriorityBrush" EndPoint="1,0.5" StartPoint="0,0.5">
<GradientStop Color="Orange" />
<GradientStop Color="Yellow" Offset="0.5" />
<GradientStop Color="Lime" Offset="1" />
</LinearGradientBrush>
<LinearGradientBrush x:Key="LowPriorityBrush" EndPoint="1,0.5" StartPoint="0,0.5">
<GradientStop Color="Lime" />
<GradientStop Color="Green" Offset="1" />
</LinearGradientBrush>
</Grid.Resources>
<Rectangle Height="150" Width="150">
<Rectangle.Style>
<Style TargetType="Rectangle">
<Style.Triggers>
<DataTrigger Binding="{Binding Priority}" Value="0">
<Setter Property="Fill" Value="{StaticResource LowPriorityBrush}" />
</DataTrigger>
<DataTrigger Binding="{Binding Priority}" Value="1">
<Setter Property="Fill" Value="{StaticResource NormalPriorityBrush}" />
</DataTrigger>
<DataTrigger Binding="{Binding Priority}" Value="2">
<Setter Property="Fill" Value="{StaticResource HighPriorityBrush}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
</Grid>
И Приоритетное свойство из ViewModel возвращает что-то вроде этого:
private double realPriority; // your priority
public double Priority
{
get
{
if (this.realPriority < -0.5) return 0;
if (this.realPriority > 0.5) return 2;
return 1;
}
}
Учитывая это и комментарии я не 100 % уверен, действительно ли вы хотите вернуть градиент или, скорее, один цвет за раз, что является результатом интерполяции, например между красным и оранжевым. Если приоритет равен «0.0», вы хотите вернуть градиент между оранжевым и извести или * сплошным сплошным * цветом, который находится на полпути между оранжевым и извести? – pbalaga
Мне жаль, что мой вопрос может ввести в заблуждение. Я хочу вернуть один цвет за определенный приоритет. Когда у вас есть список заказов, заказанных prio, он должен появиться в цветовом переходе Gradient. –