WrapPanelに画像を追加したいのですが、スクロールせずにすべての画像を表示したいと思います。新しい子供が追加されたときに画像のサイズを変更しています。から継承するクラスがありWrapPanel
、子が追加されるとResize()が起動されます。コードは次のとおりです。
public void Resize()
{
int c = this.Children.Count;
int d = 1;
if (c <= 4 && c>1) d = 2;
else if (c <= 9 && c>4) d = 3;
else if (c <= 16 && c > 9) d = 4;
foreach (UIElement child in this.Children)
{
dynamic ctrl = child;
ctrl.Width = this.Width / d;
}
}
これが最善のアプローチですか?