1

私のapp.xamlでは:

<Application.Resources>
    <SolidColorBrush x:Key="colorBrush1" Color="Orange" Opacity="1"/>
    <SolidColorBrush x:Key="colorBrush2" Color="Green" Opacity="1"/>
</Application.Resources>

私のコードビハインド:

Run run = new Run("My name is Bob!");
run.SetResourceReference(ForegroundProperty, "colorBrush1");
run.SetResourceReference(BackgroundProperty, "colorBrush2");

Paragraph paragraph = new Paragraph(run);

this.flowDocument.Blocks.Add(paragraph);

期待される結果:上記のapp.xamlで定義されているように、実行は前景色と背景色で表示されます。

実際の結果:前景色は機能しますが(オレンジ色で表示されます)、背景は透明のままです。

フォアグラウンドの場合のように、実行のバックグラウンドをリソース作業にバインドしないのはなぜですか? 最初に実行と段落をFlowDocumentに追加してからバインドしようとしましたが、結果は同じでした。

4

1 に答える 1

1

その理由は、BackgroundProperty を明確にする必要があるためです。これはあなたが望むものです:

        Run run = new Run("My name is Bob!");
        run.SetResourceReference(Run.ForegroundProperty, "colorBrush1");
        run.SetResourceReference(Run.BackgroundProperty, "colorBrush2");

本当の謎は、「ForegroundProperty」と書くだけでうまくいく理由です。

于 2011-05-23T17:57:37.580 に答える