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 を使用してメニュー項目をフォーマットする方法を考えてみましょう。1 つの例は次のようになります。

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

それをコードでエミュレートします。

于 2012-06-02T16:53:05.353 に答える