2012-06-19 3 views
2

흐름 문서의 하이퍼 링크에 그림자를 추가하는 방법을 찾지 못하는 것 같습니다. 하이퍼 링크는 UIElement가 아니기 때문에 Effect 속성이 없습니다 (내 모든 인터넷 검색은 DropShadowEffect로 안내했습니다). 그것은 TextEffects 컬렉션을 가지고 있지만 그걸로 그림자를 만드는 방법을 알아낼 수 없습니다. 궁극적으로 내가하고 싶은 것은 배경 브러시에 텍스트 자체가 아닌 드롭 섀도우를 추가하는 것입니다.하이퍼 링크에서 그림자 효과 적용

필자의 요구 사항은 매우 모호합니다. 초점을 맞추기 만하면됩니다 (예 : 마우스 포커스가 아니라 탭 포커스와 키보드 포커스). 나는 빛 그림자가 트릭을 할 것이라고 생각했지만 열려 있습니다. 다른 제안에.

(나는 스크린 샷 GRR을 업로드 할 수있는 충분한 담당자가없는 그래서 여기 시뮬레이션의)

여기 HyperLink이는

나는 회색 부분 주위에 그림자를 추가하고 싶습니다 (밝은 파란색 내 애플 리케이션에서) 텍스트 (앞에서 언급 한 바와 같이).

답변

1

나는 인라인마다이 작업을 수행 할 수 없다고 확신합니다. 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> 
+0

샘플 및 설명 주셔서 감사합니다. 이것은 궁극적으로 내가 계속해서 인터넷 검색으로 오는 결론이기도합니다. – Nathan