반응형
XAML에서 컨트롤 중심을 회전하는 방법
버튼을 90도 회전하고 싶지만 (0,0) 회전하기 때문에 잘립니다. 너비를 픽셀 단위로 모르는 경우 중앙을 중심으로 회전하는 방법 (많은 버튼의 템플릿입니다)
<Button ...>
<Button.LayoutTransform>
<RotateTransform CenterX="0.5" CenterY="0.5" Angle="90"/>
</Button.LayoutTransform>
</Button>
컨트롤의 RenderTransformOrigin을 0.5, 0.5로 설정해야합니다.
전의.:
<Button RenderTransformOrigin="0.5, 0.5">
<RepeatButton.RenderTransform>
<RotateTransform Angle="90"/>
</RepeatButton.RenderTransform>
</RepeatButton>
내 이해는 원점이 LayoutTransform과 관련이 없다는 것입니다.
MSDN 말한다 :
변형을 설정하면 강력한 크기 조정 및 회전 기능이 제공됩니다. 그러나 LayoutTransform은 TranslateTransform 작업을 무시합니다. 이는 FrameworkElement의 자식 요소에 대한 레이아웃 시스템 동작이 크기가 조정되거나 회전 된 요소의 위치에 대한 오프셋을 부모 요소의 레이아웃 및 좌표계로 자동 수정하기 때문입니다.
다음은 버튼을 "올바르게"회전시킵니다.
<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Button Grid.Row="1" Grid.Column="1">Excessively Long Button Still Ok
<Button.LayoutTransform>
<RotateTransform Angle="90" />
</Button.LayoutTransform>
</Button>
</Grid>
참고 URL : https://stackoverflow.com/questions/4132194/how-to-do-rotation-around-controls-center-in-xaml
반응형
'Nice programing' 카테고리의 다른 글
| 지정된 하나를 제외한 모든 열의 DataFrame 검색 (0) | 2020.10.31 |
|---|---|
| 링크로 전화하지 않고 스카이프 채팅을 시작하는 방법 (0) | 2020.10.31 |
| 사용자 정의 함수에 도구 설명을 추가하는 방법 (0) | 2020.10.31 |
| 푸시 알림을위한 장치 토큰 가져 오기 (0) | 2020.10.31 |
| CMake로 컴파일러의 C ++ 11 지원을 감지하는 방법 (0) | 2020.10.31 |