没整明白楼主要干嘛啊?要解决什么问题啊?
WrapPanel StackPanel 中添加的控件是不会叠在一起的
但是我用C#代码在后台给WrapPanel StackPanel 中添加自定义控件,这些控件会叠在一起
@metoer:哦,那就用margin隔开啊,你直接添加不进行设置的话,他就默认为0,不管你添加多少都会默认叠加到一块啊
@幕三少: 目前我是用margin隔开,只是想来问问看没有先进的方法
@metoer: 其实你从后台添加控件,我建议你用canvas比较好控制些
@幕三少: 嗯,以后就试着用canvas,这些写了就有经验了
是分开的吧。
StackPanel sp = new StackPanel();
Button bt1 = new Button();
bt1.Content = "1111";
Button bt2 = new Button();
bt2.Content = "2222";
sp.Children.Add(bt1);
sp.Children.Add(bt2);
this.MainGrid.Children.Add(sp); //界面上的Grid
我的是用户自定义控件
结果只能通过Margin来调整他们之间的间隔,所以我想找下原因
上代码
private void AddProgramControl(BoxItem element)
{
WrapPanel lastElement = elementList[elementList.Count - 1];
if (lastElement.Children.Count == 24)
{
lastElement.Children.Remove(addPanel);
lastElement.Children.Add(element);
ItemTool itemTool = new ItemTool();
itemTool.Height = GetPageHieght();
itemTool.Width = GetPageWidth();
itemTool.wpPancels.Children.Clear();
itemTool.wpPancels.Children.Add(addPanel);
AddPage(itemTool);
}
else
{
lastElement.Children.Insert(lastElement.Children.Count - 1, element);
}
}
其中 itemTool.wpPancels 也是WrapPanel
额 去年的 这个问题很简单 它有两个属性:itemwidth和itemHeight,设个值就行了