2012-12-04 1 views
0

WPF에서는 BackgroundProperty이 사용자 지정 브러시로 설정된 TextBox이 있습니다. 이 브러쉬에 TextBox의 경계에서 시각적 버퍼를주고 싶습니다. 브러시는 ImageBrush과 매우 비슷하지만 브러쉬 소스로 실행되는 래스터 화 된 글리프가 있습니다. GlyphRunBrush입니다.WPF 컨트롤의 BackgroundProperty에 사용되는 브러시에 어떻게 여백을 지정할 수 있습니까?

어떻게하면됩니까?

예 : enter image description here

답변

1

한 가지 방법과 같이, 브러시 자체에 변환을 적용하는 것입니다 :

<TextBox> 
    <TextBox.Background> 
     <ImageBrush ImageSource="/MyApp;component/Search.ico" 
        AlignmentX="Right" Stretch="Uniform"> 
      <ImageBrush.Transform> 
       <TransformGroup> 
        <TranslateTransform X="-5"/> 
       </TransformGroup> 
      </ImageBrush.Transform> 
     </ImageBrush> 
    </TextBox.Background> 
</TextBox> 

또한 브러시의 Viewport 재산 폭을 변경 시도 할 수 있었다, 그러나 당신이 오른쪽에 그것을 정렬하고 있기 때문에, 그것은 그것이 필요로하는 것보다 더 복잡 할 수 있습니다.

+0

좋은 트릭. 'ScaleTransform'과 0.8 스케일 인자의 조합과 오른쪽으로 글리프를 유지하기 위해 텍스트 상자의 너비에 맞춰진 'TranslateTransform'이 결합되었습니다. – codekaizen