2

我有一个这样的菜单项:

menu.Items.Insert(0, new MenuItem
{
    Header = String.Format("Foo \"{0}\" bar", "qux")
});

我的问题是:如何将一些文本格式的东西(如Foreground颜色)应用到{0}零件上?

4

2 回答 2

1

您可以使用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
}); 
于 2012-06-02T16:52:18.680 回答
0

Header属性是 MenuItem 的内容元素,类型为object

考虑如何使用 Xaml 格式化菜单项,一个示例可能是:

<MenuItem>
    <MenuItem.Header>
        <TextBlock>
            <Run Background="Yellow" Foreground="Red" FontWeight="Bold">
                Foo
            </Run>
            ... etc
        </TextBlock>
    </MenuItem.Header>
</MenuItem>

在代码中模拟它。

于 2012-06-02T16:53:05.353 回答