wpf 如何动态向tabitem添加控件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 如何动态向tabitem添加控件相关的知识,希望对你有一定的参考价值。
wpf 中有个控件 TabControl,可以向此控件添加项 tabitem,当然添加tabItem项的目的是产生多页工作表的界面,但问题来了,如何向tabitem中添加控件,试了很久都没成功,只好向高手求教了。静态的很简单不用说了,我们需要编程方式动态建立。
参考技术A 5年了,都没人来回答, 技术搜索方面百毒果然不行先加入Panel, 然后依次加入你要的控件。
StackPanel panel = new StackPanel();
Button button=new Button()Content="button1";
TextBlock textblock= new TextBlock()Text="TextBlock1";
panel.Children.Add(button);
panel.Children.Add(textblock);
TabItem item= tabcontrol.Items[0] as TabItem;
item.Content = panel;
https://social.msdn.microsoft.com/Forums/zh-CN/f4d97e7c-2bba-49eb-9367-a96547b6707e/tabitem?forum=wpfzhchs
c# wpf中如何向expander中动态添加xml中的内容
如题。我现在有一个xml文件记录了一些数据,希望在expander中分层次的显示出来。怎么做呢?
提供下思路。例如有一个xml,层次是
<classes>
<Students Name ="class1">
< Student>
<UserName>01</UserName>
<Sex>1</Sex>
<Age>22</Age>
</Student>...
就是年级有几个班,每个班有几个学生这样子。
expander的header展示班级名称,content展示每个班的学生列表。
建议用后台代码去动态创建expander和listbox。listbox的itemtemplate可以在前台写,后台引用。
后台遍历XML数据源的时候看第一层有几个数据(demol里的Students)创建expander并对其header赋值。然后创建expander.content中的listbox并赋值其Itemsource。
也可以刚开始只创建expander。在expanderItem展开的时候再去动态对其content创建listobx并赋值。追问
能有具体的代码给看一下吗?
追答先看一下
private XmlDataDocument xmlDoc;
private void button1_Click(object sender, EventArgs e)
comboBox1.Items.Add("1");
comboBox1.Items.Add("1");
XmlDocument xml = new XmlDocument();
xml.Load(System.IO.Path.GetFileName(@"bf.xml"));
XmlNode nose = xml.SelectSingleNode("request");
nose.RemoveAll();
xml.Save(System.IO.Path.GetFileName("bf.xml"));
string functionIDs = "updateMultiItemsStock";
string dateTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
xmlLoad();
XmlNode xmldocSelect = xmlDoc.SelectSingleNode("request");
XmlElement functionID = xmlDoc.CreateElement("functionID");
functionID.InnerText = functionIDs;
XmlElement time = xmlDoc.CreateElement("time");
time.InnerText = dateTime;
xmldocSelect.AppendChild(functionID);
xmldocSelect.AppendChild(time);
XmlElement ItemsList = xmlDoc.CreateElement("ItemsList");
xmldocSelect.AppendChild(ItemsList);
XmlElement ItemUpadteInfo = null;
XmlElement outerItemID = null;
XmlElement stockCount = null;
for (int i = 0; i < 5; i++)
ItemUpadteInfo = xmlDoc.CreateElement("ItemUpadteInfo");
ItemsList.AppendChild(ItemUpadteInfo);
outerItemID = xmlDoc.CreateElement("outerItemID");
ItemUpadteInfo.AppendChild(outerItemID);
stockCount = xmlDoc.CreateElement("stockCount");
ItemUpadteInfo.AppendChild(stockCount);
outerItemID.InnerText = "20100210";
stockCount.InnerText = "20";
ItemUpadteInfo.AppendChild(stockCount);
ItemUpadteInfo.AppendChild(outerItemID);
xmlDoc.Save(System.IO.Path.GetFileName("bf.xml"));
把ItemsList换成expander; 下面要添加什么改一下就行了for里面的东西就行了 正式的应该是在foreach循环里面添加数据追问
额。这个expander是wpf里的expander阿。你是不是搞错了什么。。
以上是关于wpf 如何动态向tabitem添加控件的主要内容,如果未能解决你的问题,请参考以下文章
c# wpf中如何向expander中动态添加xml中的内容
WPF自适应可关闭的TabControl 类似浏览器的标签页