OnRender 呼び出し中に約 400 の異なる場所でレンダリングしたい StreamGeometry オブジェクトがあります。もちろん、問題はジオメトリ オブジェクトが絶対座標を使用することです。
もちろん、レンダー コールの前に変換を適用することもできますが、それは本質的に 400 の変換も作成することになり、やり過ぎに思えます。
「このように、その場所にこれをレンダリングします (注: DrawGeometryAtPoint は架空のものです)...」と言いたいだけです。
protected override void OnRender(System.Windows.Media.DrawingContext dc)
{
base.OnRender(dc);
var myGeometry = new StreamGeometry();
// Code to init the geometry goes here
// Render the same geometry but at four different locations
dc.DrawGeometryAtPoint(Brush1, Pen1, myGeometry, Origin1);
dc.DrawGeometryAtPoint(Brush2, Pen2, myGeometry, Origin2);
dc.DrawGeometryAtPoint(Brush3, Pen3, myGeometry, Origin3);
dc.DrawGeometryAtPoint(Brush4, Pen4, myGeometry, Origin4);
}
それで、それはできますか?