2014-04-10 3 views
0

enter image description here 텍스트 중심점 [가로 및 세로]을 기준으로 TextBlock을 회전하고 싶습니다. 나는 다음 코드를 시도했다. 그것은 항상 텍스트 블록의 꼭대기를 차지하고 있습니다. 텍스트 중심으로 변경하는 방법.WPF, TextBlock Rotation, Alignment Issues

<TextBlock Name="textBlock1" TextWrapping="Wrap" FontSize="25" Foreground="#FFF63AFF" FontWeight="Bold"> 
TextBlock 
    <TextBlock.RenderTransform> 
     <TransformGroup> 
      <RotateTransform Angle="45" /> 
     </TransformGroup> 
    </TextBlock.RenderTransform> 
</TextBlock> 

이미지 설명 : 그림과 같이 TextBlock의 캔버스와 TextBlock의의 일부는 교차점을 기준으로 회전한다

나는 실제로 걸리는, 너무 HorizontalAlignment로뿐만 아니라 VerticalAlignment를 시도했다 부모의 정렬 세부 정보.

실제 너비와 실제 높이를 구해야합니까? 그런 다음 세부 사항을 기준으로 중심점을 계산 하시겠습니까?

답변

1

입니다 당신은 RenderTransformOrigin = 사용할 필요가

<Grid> 
     <TextBlock Name="textBlock1" RenderTransformOrigin=".5,.5" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" FontSize="25" Foreground="#FFF63AFF" FontWeight="Bold"> 
      TextBlock 
      <TextBlock.RenderTransform> 
       <TransformGroup> 
        <RotateTransform Angle="45" /> 
       </TransformGroup> 
      </TextBlock.RenderTransform> 
     </TextBlock> 
    </Grid> 

출력

enter image description here

+0

신난하지만, 지금은 중심을 특정 지점으로 옮기고 싶습니다 (0,0) 또는 (10,5) 어떻게 할 수 있습니까? TranslateTransform은 상대 값만 사용합니다 – RobinAtTech

+1

중심점은 퍼센트로 표시되는 렌더링 변환 원점에서 정의됩니다. 따라서 왼쪽 상단 위치에 중심점을두고 싶으면 중심점은 0,0이고 오른쪽 상단 점은 1,0이고 설정하면 센터는 2,0으로 오른쪽 상단 모퉁이 + 컨트롤 폭에 위치합니다. 나는 이것을 단어로 표현하는 것이 매우 어렵다는 것을 설명 할 수 있기를 바랍니다. –

+0

Heena, 이것을보십시오. http://stackoverflow.com/questions/23000804/wpf-textblock-translation-based-on-reference-point – RobinAtTech

0

텍스트 상자에이 커서 추가합니다. "5, 0.5"

TextAlignment="Center" 

을이 수평 alignement

+0

아니요, 텍스트 블록 자체가 아니라 정렬을 위해 부모의 너비가 필요합니다. – RobinAtTech

+1

죄송합니다. 정확히 무슨 뜻인지 이해하지 못합니다. 코드를 정확하게 보여줄 수 있습니까 ?? – mister

+0

아저씨, 지금 이미지 설명을 확인하십시오. – RobinAtTech