나는 간단하고 수평 인 <Line>
엘리먼트를 가지고있다. 이 선은 그것에 적용된 RotateTransform을가집니다.이 선은 내가 선택한 각도로 선을 기울입니다. 문제는 변환이 적용될 때 전에 행의 렌더링 된 길이가 으로 계산된다는 것입니다. 결과적으로 선은 회전 한 후에 더 이상 부모 요소에 맞지 않습니다. 도시 된 바와 같이
http://img179.imageshack.us/img179/2592/slantpartial.png
하는 라인과 접촉하지 않는다 :WPF 요소를 이전에 회전하지 않고 크기를 변경하려면 어떻게해야합니까?
<Grid Background="Orange">
<Line HorizontalAlignment="Left" VerticalAlignment="Bottom"
RenderTransformOrigin="0,0" Stretch="UniformToFill"
StrokeThickness="1" Stroke="Green" X1="0" Y1="0" X2="1" Y2="0">
<UIElement.RenderTransform>
<RotateTransform Angle="-15" />
</UIElement.RenderTransform>
</Line>
</Grid>
결과이있다 :
내 현재 코드는 예를 들어 15 °로하여,이 비슷 회전으로 인해 컨트롤의 오른쪽 가능한 한 가장 큰 크기로 늘어나고 각도를 설정하는 것과 관계없이 부모 컨트롤을 완전히 채울 선이 필요합니다. 각도는 런타임에 동적으로 변경되며 현재 프로젝트에서 경사 계산을 사용할 수 없습니다. RotateTransform을 선을 기울이는 수단으로 유지해야합니다.
내가 달성하기 위해 필요한의 예 - 다시, 예를 들어 15 °를 사용 :
http://img42.imageshack.us/img42/8276/slantcomplete.png
RenderTransform이 적용되기 전에 선이 레이아웃 시스템에 의해 잘 리기 때문에 RenderTransform을 사용하면이 기능이 작동하지 않습니다. 그러나이 솔루션은 LayoutTransform에서 완벽하게 작동합니다. 수동으로 줄을 길게하면 레이아웃 시스템이 코드 지정 길이를 사용하게되어 "늘이기"를 제외한 다른 요소를 무시합니다. 이 솔루션을 작동 시키려면 "Stretch"속성을 "None"으로 설정해야합니다. 마찬가지로 "HorizontalAlignment"및 "VerticalAlignment"속성을 "Stretch"로 설정하면 안됩니다. – Giffyguy
(시스템에서 답을 upvote하지 못하게됩니다.) 정말 답답합니다 ...) – Giffyguy