我一直在寻找这个,但我找不到任何我需要的东西,也许它很简单,但我得到的东西只是如何使用" +"连接字符串或格式化程序。
我想知道的是如何通过更改另一个字符串来调用包含颜色的HEX格式的字符串。
继承人和榜样:
我已经命名了以下字符串:
"hello",
"how many questions?",
"3",
"question 1?",
"A",
"question 2?",
"B",
"question 3?",
"C",
"your answers were: A,B,C"
这个变量:
string Color_Option1 = "#FF17868B";
string Color_Option2 = "#FFFFFFFF";
string Color_Option3 = "#FF000000";
然后我有3个按钮和一个TextBlock,当点击一个按钮时,他们会在" OptionClicked"上放置一个值,例如:
private static string m_optionclicked = "";
public static string OptionClicked
{
get { return m_optionclicked; }
set { m_optionclicked = value; }
}
因此,根据单击的按钮,我想更改TextBlock的背景颜色,如下所示:
OptionClicked = "Option2";
但我每次都在后台行得到错误,有没有人知道如何调用名为" Color_Option2"具有类似的语法?
我确保OptionClicked的值为" Option2"它实际上有效,如果我写" Color_Option2"而不是连接字符串和变量。
顺便说一下,这是一个简化的例子,我有很多按钮,文本块和颜色,所以制作一个“如果”或“逐个”确定的链条会让我的生活变得悲惨。提前致谢。
答案 0 :(得分:0)
如果你想通过反思来做到这一点,你可以拥有一个包含公共字段的类,例如
class ColorClass
{
public string Color_Option1 = "#FF17868B";
public string Color_Option2 = "#FFFFFFFF";
public string Color_Option3 = "#FF000000";
}
然后抓住值,
ColorClass colorClass = new ColorClass();
(string)typeof(ColorClass).GetField("Color_" + OptionClicked).GetValue(colorClass);
解决这个问题的另一种方法是David L在评论中说,只需创建一个字典,并将密钥作为字符串变量名称。