我有一个这样的菜单项:
menu.Items.Insert(0, new MenuItem
{
Header = String.Format("Foo \"{0}\" bar", "qux")
});
我的问题是:如何将Foreground
颜色等文字格式设置应用到{0}
部分?
答案 0 :(得分:1)
您可以使用格式为TextBlock
元素不同的Inline
:
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
});
答案 1 :(得分:0)
Header
属性是MenuItem的内容元素,类型为object
。
考虑如何使用Xaml格式化菜单项,例如:
<MenuItem>
<MenuItem.Header>
<TextBlock>
<Run Background="Yellow" Foreground="Red" FontWeight="Bold">
Foo
</Run>
... etc
</TextBlock>
</MenuItem.Header>
</MenuItem>
在代码中模拟。