RotateTransform을 사용하여 중심에서 DrawingBrush 회전

Oystein

회전하려는 나침반의 UserControl이 있습니다. 나는 그것을 중심에서 회전하려고 노력하고 있으며 Google은 RenderTransformOrigin="0.5,0.5"이것을 달성하기 위해 사용 하는 것에 대한 많은 참조를 찾고 있습니다 . 그러나 이것은 어떤 이유로 작동하지 않습니다. 모서리를 원점으로하는 UserControl 만 회전합니다.

내가 설정 CenterX="150"하고 CenterY="150"UserControl 내부에 있으면 작동합니다. 그러나 그런 다음 주 창에서 UserControl의 높이와 너비를 300으로 설정해야합니다.

UserControl을 호출 할 때 설정 한 높이 및 너비 설정에 관계없이 UserControl을 중심점에서 회전하려면 어떻게해야합니까? 또한 호출 할 때보다는 UserControl 내부에 RenderTransformOrigin을 설정하는 것을 선호합니다.

(단순화) UserControl XAML :

<UserControl x:Class="Poseidon.Views.CompassUserControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:Poseidon.Views"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">

    <Grid>
        <Grid.Resources>
            <DrawingBrush x:Key="Compass_ver1">
                <DrawingBrush.Drawing>
                    <DrawingGroup>
                        <DrawingGroup.Children>
                            <GeometryDrawing Brush="#FF000000" Geometry="M 375.286,151.366C 486.487,151.366 576.634,241.513 576.634,352.714C 576.634,463.915 486.487,554.061 375.286,554.061C 264.085,554.061 173.939,463.915 173.939,352.714C 173.939,241.513 264.085,151.366 375.286,151.366 Z "/>
                            <GeometryDrawing Geometry="M 375.286,151.366C 486.487,151.366 576.634,241.513 576.634,352.714C 576.634,463.915 486.487,554.061 375.286,554.061C 264.085,554.061 173.939,463.915 173.939,352.714C 173.939,241.513 264.085,151.366 375.286,151.366 Z ">
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="0.755907" LineJoin="Round" Brush="#FF000000"/>
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                            <GeometryDrawing Brush="#FFFFFFFF" Geometry="M 382.484,188.872C 472.971,192.847 543.103,269.425 539.128,359.912C 535.153,450.399 458.575,520.531 368.088,516.556C 277.601,512.58 207.469,436.003 211.444,345.516C 215.42,255.029 291.997,184.897 382.484,188.872 Z "/>
                            <GeometryDrawing Geometry="M 382.484,188.872C 472.971,192.847 543.103,269.425 539.128,359.912C 535.153,450.399 458.575,520.531 368.088,516.556C 277.601,512.58 207.469,436.003 211.444,345.516C 215.42,255.029 291.997,184.897 382.484,188.872 Z ">
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="0.755907" LineJoin="Round" Brush="#FF000000"/>
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                            <GeometryDrawing Brush="#FF000000" Geometry="M 375.286,227.352L 389.511,202.805L 403.736,178.258L 375.286,178.258L 346.836,178.258L 361.061,202.805L 375.286,227.352 Z "/>
                            <GeometryDrawing Geometry="M 375.286,227.352L 389.511,202.805L 403.736,178.258L 375.286,178.258L 346.836,178.258L 361.061,202.805L 375.286,227.352 Z ">
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="0.755907" LineJoin="Round" Brush="#FF000000"/>
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                        </DrawingGroup.Children>
                    </DrawingGroup>
                </DrawingBrush.Drawing>
            </DrawingBrush>
        </Grid.Resources>
        <Rectangle Fill="{StaticResource Compass_ver1}">
            <Rectangle.RenderTransform>
                <RotateTransform Angle="{Binding FlightData.Value.Heading}" />
            </Rectangle.RenderTransform>
        </Rectangle>
    </Grid>
</UserControl>

기본 창 XAML :

<local:CompassUserControl DataContext="{Binding Rov}" Height="100" Width="100" RenderTransformOrigin="0.5,0.5"/>
mm8

RenderTransformOrigin특성을 가져 오거나 선언 변환 임의의 중심점을 설정 RenderTransform하면 변환을 적용한되는 요소의 경계를 기준으로 재산 : https://msdn.microsoft.com/en-us/library/system.windows. uielement.rendertransformorigin (v = vs.110) .aspx

따라서 @Maxim이 제안한대로 다음 RenderTransformOrigin과 같이 Rectangle요소 속성을 설정해야 합니다 UserControl.

<Rectangle Fill="{StaticResource Compass_ver1}" RenderTransformOrigin="0.5, 0.5">
    <Rectangle.RenderTransform>
        <RotateTransform Angle="{Binding FlightData.Value.Heading}" />
    </Rectangle.RenderTransform>
</Rectangle>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Julia에서 PyPlot을 사용하여 특정 지점을 중심으로 사각형 회전

분류에서Dev

행렬을 사용하여 3 차원에서 임의 축을 중심으로 회전

분류에서Dev

Fabric js에서 중심을 중심으로 회전을 애니메이션하는 방법

분류에서Dev

Quaternion을 사용하여 축을 중심으로 여러 점 회전

분류에서Dev

비 XAML 앱에서 DrawingBrush 사용

분류에서Dev

SVG / D3에서 중심을 중심으로 텍스트를 회전하는 방법 (세로 뒤집기)?

분류에서Dev

회전 애니메이션이 중심점에서 자산을 회전하지 않습니다.

분류에서Dev

glMultMatrix를 사용하여 고정 된 점을 중심으로 객체 회전

분류에서Dev

d3.js를 사용하여 중심을 중심으로 사각형이 이상한 회전

분류에서Dev

IE에서 CSS 변환을 사용하여 div 요소 회전

분류에서Dev

Python을 사용하여 블렌더에서 카메라 회전

분류에서Dev

중심의 위치를 유지하면서 JPanel에 그려진 내용을 회전합니다.

분류에서Dev

중심의 위치를 유지하면서 JPanel에 그려진 내용을 회전합니다.

분류에서Dev

SVG 원을 올바르게 중심으로 회전하고 원의 중심에 다각형을 중심으로 회전하는 방법은 무엇입니까?

분류에서Dev

C ++의 Boost.Geometry에서 다각형 변환 : 선을 중심으로 변환, 회전, 반사

분류에서Dev

RealityKit에서 하나의 축을 중심으로 개체를 어떻게 회전합니까?

분류에서Dev

OpenGl에서 Y 축을 중심으로 지속적으로 회전하는 삼각형 만들기

분류에서Dev

OpenGL에서 축을 중심으로 개체를 회전하면 개체의 크기가 변경됩니다.

분류에서Dev

three.js에서 원을 중심으로 선 회전

분류에서Dev

플롯에서만 z 축을 중심으로 회전

분류에서Dev

파이썬에서 원점을 중심으로 곡선 회전

분류에서Dev

JS에서 회전하는 객체를 중심으로 객체 회전

분류에서Dev

Box2d 힘 또는 임펄스를 사용하여 점을 중심으로 바디 회전

분류에서Dev

중심에서 텍스트 회전이 정확하지 않음

분류에서Dev

글리프의 세로 중간 또는 중심점 주위에 CSS 회전 전환을 적용하는 방법

분류에서Dev

JavaFX는 모서리를 중심으로 사각형을 회전합니다.

분류에서Dev

MouseOver에서 축소판을 회전하고 Mouseleave에서 회전 중지

분류에서Dev

Dataweave Mule을 사용하여 전화 번호에서 국가 코드 조회

분류에서Dev

JQuery 슬라이드 쇼에서 원근을 사용하여 3D 회전

Related 관련 기사

  1. 1

    Julia에서 PyPlot을 사용하여 특정 지점을 중심으로 사각형 회전

  2. 2

    행렬을 사용하여 3 차원에서 임의 축을 중심으로 회전

  3. 3

    Fabric js에서 중심을 중심으로 회전을 애니메이션하는 방법

  4. 4

    Quaternion을 사용하여 축을 중심으로 여러 점 회전

  5. 5

    비 XAML 앱에서 DrawingBrush 사용

  6. 6

    SVG / D3에서 중심을 중심으로 텍스트를 회전하는 방법 (세로 뒤집기)?

  7. 7

    회전 애니메이션이 중심점에서 자산을 회전하지 않습니다.

  8. 8

    glMultMatrix를 사용하여 고정 된 점을 중심으로 객체 회전

  9. 9

    d3.js를 사용하여 중심을 중심으로 사각형이 이상한 회전

  10. 10

    IE에서 CSS 변환을 사용하여 div 요소 회전

  11. 11

    Python을 사용하여 블렌더에서 카메라 회전

  12. 12

    중심의 위치를 유지하면서 JPanel에 그려진 내용을 회전합니다.

  13. 13

    중심의 위치를 유지하면서 JPanel에 그려진 내용을 회전합니다.

  14. 14

    SVG 원을 올바르게 중심으로 회전하고 원의 중심에 다각형을 중심으로 회전하는 방법은 무엇입니까?

  15. 15

    C ++의 Boost.Geometry에서 다각형 변환 : 선을 중심으로 변환, 회전, 반사

  16. 16

    RealityKit에서 하나의 축을 중심으로 개체를 어떻게 회전합니까?

  17. 17

    OpenGl에서 Y 축을 중심으로 지속적으로 회전하는 삼각형 만들기

  18. 18

    OpenGL에서 축을 중심으로 개체를 회전하면 개체의 크기가 변경됩니다.

  19. 19

    three.js에서 원을 중심으로 선 회전

  20. 20

    플롯에서만 z 축을 중심으로 회전

  21. 21

    파이썬에서 원점을 중심으로 곡선 회전

  22. 22

    JS에서 회전하는 객체를 중심으로 객체 회전

  23. 23

    Box2d 힘 또는 임펄스를 사용하여 점을 중심으로 바디 회전

  24. 24

    중심에서 텍스트 회전이 정확하지 않음

  25. 25

    글리프의 세로 중간 또는 중심점 주위에 CSS 회전 전환을 적용하는 방법

  26. 26

    JavaFX는 모서리를 중심으로 사각형을 회전합니다.

  27. 27

    MouseOver에서 축소판을 회전하고 Mouseleave에서 회전 중지

  28. 28

    Dataweave Mule을 사용하여 전화 번호에서 국가 코드 조회

  29. 29

    JQuery 슬라이드 쇼에서 원근을 사용하여 3D 회전

뜨겁다태그

보관