自分のUserControlでRegionプロパティを自動的に更新します。私はそれが一緒にマージされた子コントロールの領域の組み合わせであることを望みます。ここでUserControlの結合領域の作成
は、私がこれまで持っているもの:
protected override void OnSizeChanged(EventArgs e)
{
base.OnSizeChanged(e);
Region region = new Region(new Rectangle(Point.Empty, Size.Empty));
foreach (Control control in Controls)
{
if (control.Region != null)
region.Union(control.Region);
else
region.Union(control.Bounds);
}
Region = region;
Invalidate();
}
問題は、それが動作しないということである:地域がコントロールのオフセット左と上の情報が含まれていないので、ラインregion.Union(control.Region);
を変更する必要があります。
どうすればよいですか?
はどのようにコントロールの領域を作成するのですか? GraphicsPathによって? 1つでか、または次第に? – TaW
@Taw - はい、GraphicsPathを一度に使用します。それは問題ですか? – walruz
これらのGraphicsPathをタグに格納して、連合に使用することができます。マトリックスでそれらを移動することができます。 – TaW