Web アプリケーションの実行時にいくつかの WPF 要素のイメージを生成しようとしています。私は中程度の成功を収めましたが、WPF デスクトップ アプリケーションで同じコードを使用すると、正常に機能しているにもかかわらず、子要素が親を埋めるために伸びないという問題があります。コードは次のとおりです。
Canvas imageCanvas = new Canvas { Width = 1651, Height = 2551, Background = Brushes.White };
Canvas Test = new Canvas();
System.Windows.Shapes.Path Path = new System.Windows.Shapes.Path();
Path.Data = Geometry.Parse("M 0,0 H 287 V 287 H 0 Z");
Path.Stretch = Stretch.Fill;
Path.Stroke = Brushes.Black;
Path.StrokeThickness = 1;
Test.Width = 500;
Test.Height = 500;
Test.Children.Add(Path);
imageCanvas.Children.Add(Test);
Canvas.SetTop(Test, 10);
Canvas.SetLeft(Test, 10);
// Update layout
Size size = new Size(imageCanvas.Width, imageCanvas.Height);
imageCanvas.Measure(size);
imageCanvas.Arrange(new Rect(size));
RenderTargetBitmap bitmapRenderer = new RenderTargetBitmap((int)size.Width, (int)size.Height, 96, 96, PixelFormats.Pbgra32);
bitmapRenderer.Render(imageCanvas);
私が期待しているのは、親キャンバスを埋める正方形ですが、これは起こりません。実際、親のサイズは完全に無視されているようで、パスは常に同じです。サイズ変更を強制するためにできることはありますか? 一番上のキャンバスのメジャーとアレンジの呼び出しがこれを行うと思っていましたが、明らかにそうではありません。:(