如何设置 WPF 菜单项中的文本格式

本文关键字:菜单项 文本 格式 WPF 何设置 设置 | 更新日期: 2023-09-27 18:36:10

我有一个这样的菜单项:

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

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

如何设置 WPF 菜单项中的文本格式

您可以使用具有不同格式Inline元素的TextBlock

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>

在代码中模拟它。