gpt4 book ai didi

c# - 在 IValueConverter 中使用 FindResource

转载 作者:太空宇宙 更新时间:2023-11-03 22:51:56 24 4
gpt4 key购买 nike

我有这个值转换器,可以将数字转换为画笔颜色。我需要做的是将 return Brushes.Red; 行更改为 return (Brush)FindResource("PrimaryHueMidBrush");,这样我就可以返回主旋律。问题是我不知道如何声明 (Brush)FindResource("PrimaryHueMidBrush");。欢迎任何帮助。提前谢谢你。

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double.TryParse(value.ToString(), out double val);

if (val == 1)
{
return Brushes.Red;
}
else if(val == 0.5)
{
return Brushes.MediumVioletRed;
}
else if(val==0)
{
return Brushes.Transparent;
}
else
{
return Brushes.Transparent;
}
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}

最佳答案

与其在转换器中调用 FindResource,不如为动态画笔添加一个或多个属性:

public class YourConverter : IValueConverter
{
public Brush FirstBrush { get; set; }
public Brush SecondBrush { get; set; }

public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
double val = (double)value;

if (val >= 1)
{
return FirstBrush;
}

if (val >= 0.5)
{
return SecondBrush;
}

return Brushes.Transparent;
}

public object ConvertBack(
object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}

您可以像这样在您的应用程序或窗口的资源中声明它:

<local:YourConverter x:Key="YourConverter"
FirstBrush="{StaticResource PrimaryHueMidBrush}"
SecondBrush="MediumVioletRed"/>

关于c# - 在 IValueConverter 中使用 FindResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47063040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com