次のように OnRender-Method をオーバーライドする UserControl があります。
MyUsercontrol.cs:
MyUserControl: UserControl
{
protected override void OnRender(DrawingContext dc)
{
dc.DrawRectangle(Brushes.White, new Pen(Brushes.Black,1), new Rect(0,10,50,30));
var visualBrush = new VisualBrush(new UserControl1{Height=30, Width=50});
dc.DrawGeometry(visualBrush, null, new RectangleGeometry(new Rect(50,10,50,30)));
}
}
上記で使用されている UserControl は次のようになります (追加の分離コードなしで xaml で定義されています)。
<UserControl x:Class="VisualBrushExample.UserControl1" ...>
<Grid>
<Border BorderThickness="1" BorderBrush="Black" Background="White" CornerRadius=8,0,0,8"/>
</Grid>
</UserControl>
MyUserControl を使用すると、次の出力が得られます。
私の質問は、UserControl1-Rectangle の周りにこの透明な境界線を取得せずに、OnRender() メソッドで UserControl1 を使用する方法が存在するかどうかです。
よろしくお願いします、rhe1980