私は、WPFの三角形が表示されていたし、それはセンターポイントを中心にある程度回転する場合WPFはWPF PathGeometryを/ RotateTransform最適化
を三角形回転/レンダリングするとき、私はそれを2のいずれかを行うことができ、パフォーマンスの問題が生じています方法:
プログラムによるポイントを決定し、そのバックエンドでのオフセット、単に彼らが所属するキャンバス上に配置するXAMLを使用し、それは次のようになります。
<Path Stroke="Black"> <Path.Data> <PathGeometry> <PathFigure StartPoint ="{Binding CalculatedPointA, Mode=OneWay}"> <LineSegment Point="{Binding CalculatedPointB, Mode=OneWay}" /> <LineSegment Point="{Binding CalculatedPointC, Mode=OneWay}" /> <LineSegment Point="{Binding CalculatedPointA, Mode=OneWay}" /> </PathFigure> </PathGeometry> </Path.Data> </Path>
を0
「同じ」三角形を毎回生成し、それが属している場所にそれを置くためにRenderTransform(回し)を使用します。この場合、回転計算はどのように行われているかについてのアクセス権がないため、難読化されています。
<Path Stroke="Black"> <Path.Data> <PathGeometry> <PathFigure StartPoint ="{Binding TriPointA, Mode=OneWay}"> <LineSegment Point="{Binding TriPointB, Mode=OneWay}" /> <LineSegment Point="{Binding TriPointC, Mode=OneWay}" /> <LineSegment Point="{Binding TriPointA, Mode=OneWay}" /> </PathFigure> </PathGeometry> </Path.Data> <Path.RenderTransform> <RotateTransform CenterX="{Binding Centre.X, Mode=OneWay}" CenterY="{Binding Centre.Y, Mode=OneWay}" Angle="{Binding Orientation, Mode=OneWay}" /> </Path.RenderTransform> </Path>
私の質問は1つが速くなるのですか?
私はそれを自分自身をテストする必要があります知っているが、どのように私は、このような粒度でオブジェクトのレンダリング時間を測定します。私は実際のレンダリング時間がフォームのどれくらいの時間であるかを時間で確認する必要がありますが、私は再描画を開始するものではないので、開始時間をどのようにキャプチャするのか分かりません。