我正在编写一个函数,它将Control Ctrl
作为Arguement
并修改Control.Content
。
有没有办法获取和设置任何Content
的<{1}}
代码:
Control
答案 0 :(得分:2)
答案 1 :(得分:2)
试试这个:
void RemoveHotKey(ContentControl Ctrl, int KeyIndex)
{
if (Ctrl.Content.ToString().Substring(KeyIndex, 1) == "_")
{
Ctrl.Content = Ctrl.Content.ToString().Remove(KeyIndex, 1);
}
}
看看here。
或者这个:
void RemoveHotKey(Control Ctrl, int KeyIndex)
{
ContentControl contentCtrl = Ctrl as ContentControl;
if (contentCtrl != null && contentCtrl.Content != null)
{
if (contentCtrl.Content.ToString().Substring(KeyIndex, 1) == "_")
{
contentCtrl.Content = contentCtrl.Content.ToString().Remove(KeyIndex, 1);
}
}
}
这比使用反射便宜..
答案 2 :(得分:1)
您可以使用反射来检查 Control 是否实际上具有 Content 属性...
Type t = Ctrl.GetType();
PropertyInfo p = t.GetProperty("Content");
if (p != null)
{
string val = p.GetValue(Ctrl, null) ?? "";
val = val.Replace("_", "");
p.SetValue(Ctrl, val, null);
}