WPF中动态添加控件,以及设置他们的位置

lasvegas_xiang 2011-01-18 06:12:42
需要根据用户点下哪一个按钮来确定stackpanel的个数以及设置它的margin,Orientation
对于一个stackpanel用<StackPanel Orientation="Horizontal" Margin="5,2,5,2">可以完成这些工作但是由于xaml不能动态改变,我需要在代码中实现与<StackPanel Orientation="Horizontal" Margin="5,2,5,2">相同的功能
我发现 定义 StackPanel S1 = new StackPanel();
S1的成员函数中没有能设置orientation的值和margin的功能

我还需要动态改变textbox的个数,这不能再xaml中实现吧? 在代码中(非xaml)创建textbox怎么设置它的位置呢,貌似也没有找到相关函数,望高手指教

动态加载控件,以及改变控件属性的一些常用函数!!!! 感谢了 非常着急啊
...全文
3068 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿色夹克衫 2011-01-18
  • 打赏
  • 举报
回复
感觉LZ要的其实是数据绑定,看看相关资料吧!
lizhibin11 2011-01-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kk791159796 的回复:]
引用 2 楼 lizhibin11 的回复:

SetValue第一个参数是该对象的依赖属性,你可以通过智能提示看看都有哪些,第二个参数就是该属性的值,注意数据类型要对。
上面的例子是设置相对于该TextBox所在的Canvas的左边距。

还有Orientation怎么设置呢
[/Quote]
Orientation应该是容器类的属性。例如
StackPanel sp = new StackPanel();
sp.Orientation = Orientation.Horizontal;
龍过鸡年 2011-01-18
  • 打赏
  • 举报
回复
用控件模板撒

DataTemplate
wuyq11 2011-01-18
  • 打赏
  • 举报
回复
private void CreateButton(int x, int y)
{
canvas1.Children.Clear();
double width = (this.canvas1.ActualWidth - (x + 1) * 5) / x;
double height = (this.canvas1.ActualHeight - (y + 1) * 5) / y;
for (int i = 0; i < x; i++)
{
for (int j = 0; j < y; j++)
{
Button bt = new Button()
{
Width = width,
Height = height
};
Canvas.SetTop(bt, j * height + 5);
Canvas.SetLeft(bt, i * width + 5);
canvas1.Children.Add(bt);
}
}
}
StackPanel则是基于流模式的,它没有绝对定位的概念,一批控件要么从左到右排列,要么从上而下排列Grid与StackPanel也是一样的
lasvegas_xiang 2011-01-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lizhibin11 的回复:]

SetValue第一个参数是该对象的依赖属性,你可以通过智能提示看看都有哪些,第二个参数就是该属性的值,注意数据类型要对。
上面的例子是设置相对于该TextBox所在的Canvas的左边距。
[/Quote]
还有Orientation怎么设置呢
lizhibin11 2011-01-18
  • 打赏
  • 举报
回复
SetValue第一个参数是该对象的依赖属性,你可以通过智能提示看看都有哪些,第二个参数就是该属性的值,注意数据类型要对。
上面的例子是设置相对于该TextBox所在的Canvas的左边距。
lizhibin11 2011-01-18
  • 打赏
  • 举报
回复
TextBox tb = new TextBox();
canvas1.Children.Add(tb);
tb.SetValue(Canvas.LeftProperty, 10d);
类似这样。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧