首页 新闻 会员 周边 捐助

WPF 后台代码 用 WrapPanel 或者StackPanel 添加的用户自定义控件

-1
悬赏园豆:50 [已解决问题] 解决于 2013-12-04 16:55

用户自定义控件不会像xaml中一样会分开排列,而会叠在一起?

metoer的主页 metoer | 初学一级 | 园豆:8
提问于:2013-12-03 11:05
< >
分享
最佳答案
0

没整明白楼主要干嘛啊?要解决什么问题啊?

收获园豆:50
幕三少 | 小虾三级 |园豆:1384 | 2013-12-04 11:11

WrapPanel StackPanel  中添加的控件是不会叠在一起的

但是我用C#代码在后台给WrapPanel StackPanel  中添加自定义控件,这些控件会叠在一起

metoer | 园豆:8 (初学一级) | 2013-12-04 14:55

@metoer:哦,那就用margin隔开啊,你直接添加不进行设置的话,他就默认为0,不管你添加多少都会默认叠加到一块啊 

幕三少 | 园豆:1384 (小虾三级) | 2013-12-04 16:45

@幕三少: 目前我是用margin隔开,只是想来问问看没有先进的方法

metoer | 园豆:8 (初学一级) | 2013-12-04 16:47

@metoer: 其实你从后台添加控件,我建议你用canvas比较好控制些

幕三少 | 园豆:1384 (小虾三级) | 2013-12-04 16:51

@幕三少: 嗯,以后就试着用canvas,这些写了就有经验了

metoer | 园豆:8 (初学一级) | 2013-12-04 16:54
其他回答(3)
0

是分开的吧。

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

澹台紫枫 | 园豆:104 (初学一级) | 2013-12-03 11:24

我的是用户自定义控件

支持(0) 反对(0) metoer | 园豆:8 (初学一级) | 2013-12-03 11:27

结果只能通过Margin来调整他们之间的间隔,所以我想找下原因

支持(0) 反对(0) metoer | 园豆:8 (初学一级) | 2013-12-03 11:29
0

上代码

RyanCheng | 园豆:474 (菜鸟二级) | 2013-12-03 12:32

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

支持(0) 反对(0) metoer | 园豆:8 (初学一级) | 2013-12-03 13:48
0

 额 去年的 这个问题很简单 它有两个属性:itemwidth和itemHeight,设个值就行了

iEvent | 园豆:529 (小虾三级) | 2014-10-14 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册