DrawingContext にスケール変換を適用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1099945

  •  11-09-2019
  •  | 
  •  

質問

私は持っています Canvas XAML でスケール変換が適用されます。使用する DrawingContext に線を引いていきます Canvas. 。次に、画面にテキストを追加する必要があります。フォーマットされたテキストを使用すれば翻訳を適用できると思いましたが、フォーマットされたテキストや DrawingContext 受け入れる RenderTransform. 。キャンバスのスケール変換に対抗するようにテキストにスケール変換を適用するにはどうすればよいですか?

 ftext = New FormattedText("N", CultureInfo.GetCultureInfo("en-us"), Windows.FlowDirection.LeftToRight, face, Me.DBFontSize, FalconDataBlock.Foreground)
 context.DrawText(ftext, .TargetLineInfo.EndAsWinPoint)
役に立ちましたか?

解決

ほとんどの UI アプリでは、DrawingContext を使用する代わりに、子の TextBlock を Canvas に追加し、TextBlock の RenderTransform を変更するのが正しい方法である可能性があります。

ただし、DrawingContext を使用する正当な理由があると仮定すると、次のように使用できます。 DrawingContext.PushTransform DrawText を呼び出す直前に、必要な変換 (スケール、変換など) をプッシュします。使用 DrawingContext.Pop DrawText を使い終わった後に前の状態に戻すには、

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top