gpt4 book ai didi

wpf - 在 WPF 应用程序中使用 Resourse.resx 设置颜色

转载 作者:行者123 更新时间:2023-12-04 18:28:33 26 4
gpt4 key购买 nike

我正在尝试制作一个必须能够轻松更改 dll 文件的应用程序,该文件可以更改应用程序中的颜色。我正在尝试使用资源管理器来执行此操作,但在设置颜色值时遇到问题,以便 View 的样式可以轻松接受它。我们知道(在这种情况下)按钮的背景采用 SolidColorBrush,而

Value="Black" 有效,
Value={x:Static res:AppResources.Btn_Background}

它给出的字符串 Black 没有(当前的理论是转换器使前者起作用但后者不起作用)。这一切都在 wpf 和 mvvm 中完成。你们知道如何做到这一点吗?

问候

最佳答案

您可以使用Binding:

Background="{Binding Source={x:Static res:AppResources.Btn_Background}}"

这将导致 CoerceValue 为控制后台的 DependencyProperty 触发。

@Snowbear 提到它可能是 Color 而不是 String,在这种情况下,您需要提供一个普通的 IValueConverter

public class ColorConverter: IValueConverter
{
#region IValueConverter Members

private Dictionary<Color, Brush> brushes = new Dictionary<Color, Brush>();

public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
Brush brush;
var color = (Color)value;
if (!brushes.TryGetValue(color, out brush))
{
brushes[color] = brush = new SolidColorBrush(color);
brush.Freeze();
}

return brush;
}

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

#endregion
}

关于wpf - 在 WPF 应用程序中使用 Resourse.resx 设置颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5353611/

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