2

フロー ドキュメントのハイパーリンクにドロップ シャドウを追加する方法がわかりません。HyperLink は UIElement ではないため、Effect プロパティはありません (すべてのグーグル検索で DropShadowEffect にたどり着きました)。TextEffects コレクションはありますが、それを使用してドロップ シャドウを作成する方法がわかりません。最終的に私がやりたいことは、テキスト自体ではなく背景ブラシにドロップシャドウを追加することです.

私の要件はかなり漠然としています。フォーカスの外観を改善する必要があるだけです (つまり、マウス オーバーではなく、タブ フォーカスとキーボード フォーカス)。ライト ドロップ シャドウでうまくいくと思いましたが、他の提案も受け付けています。

(スクリーンショットをアップロードするのに十分な担当者がいないので、ここにシミュレーションがあります)

ここがありHyperLinkます

テキストではなく灰色の部分(私のアプリでは水色)の周りにドロップシャドウを追加したいと思います(前述のとおり)。

4

1 に答える 1

2

インラインごとにこれを行うことはできないと確信しています。WPF がエフェクトを提供する方法は、ビジュアル ツリー内の単一のオブジェクトにエフェクトを大規模に適用することです。ハイパーリンクなどのコンテンツ要素はすべて、親 (FlowDocumentReader または同等のもの) で単一の視覚要素に結合されます。

FlowDocument コントロールには、BlockUIContainer ブロック コンテンツ要素または InlineUIContainer インライン コンテンツ要素を使用して子ビジュアル要素をホストする機能があります。これを使用して、次のように DropShadow を単一のハイパーリンクに適用できます。

<FlowDocument>
        <Paragraph>
            <Run Text="This is a" />
            <InlineUIContainer>
                <TextBlock Background="#FFCDCDCD">
                    <TextBlock.Effect>
                        <DropShadowEffect ShadowDepth="3" Color="#FFC9C9C9" />
                    </TextBlock.Effect>
                    <Hyperlink><Run Text="hyperlink" /></Hyperlink>
                </TextBlock>
            </InlineUIContainer>
        </Paragraph>
</FlowDocument>
于 2012-06-19T18:28:54.063 に答える