如何格式化WPF菜单项中的文本?

时间:2012-06-02 16:28:05

标签: c# wpf

我有一个这样的菜单项:

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

我的问题是:如何将Foreground颜色等文字格式设置应用到{0}部分?

2 个答案:

答案 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>

在代码中模拟。