我有一个这样的菜单项:
menu.Items.Insert(0, new MenuItem
{
Header = String.Format("Foo \"{0}\" bar", "qux")
});
我的问题是:如何将一些文本格式的东西(如Foreground
颜色)应用到{0}
零件上?
您可以使用TextBlock
具有不同格式Inline
元素的 a:
TextBlock text = new TextBlock();
text.Inlines.AddRange(
new Inline[]
{
new Run("Foo "),
new Run(string.Format("\"{0}\"", "qux")) {Foreground = Brushes.Red},
new Run(" bar")
});
menu.Items.Insert(0, new MenuItem
{
Header = text
});
该Header
属性是 MenuItem 的内容元素,类型为object
。
考虑如何使用 Xaml 格式化菜单项,一个示例可能是:
<MenuItem>
<MenuItem.Header>
<TextBlock>
<Run Background="Yellow" Foreground="Red" FontWeight="Bold">
Foo
</Run>
... etc
</TextBlock>
</MenuItem.Header>
</MenuItem>
在代码中模拟它。