今天说下TabControl中遇到的坑 ,如题。废话不多说,先上代码:
private void creatNewTab(string head,string url) {
int index = getTabItemIndex(head);
if (index == -1) {
index = myTabControl.Items.Count;
Frame fm = new Frame();
fm.Source = new Uri(url,UriKind.Relative );
TabItem ti = new TabItem() { Header = head ,Content=fm};
myTabControl.Items.Add(ti);
myTabControl.SelectedIndex = index;
第一个坑坑:如何在WPF TabControl TabItem代码中动态插入Frame。
其实就是这么几句话。各位看官,简单吧?
据我多次测试,插入到TabItem的Frame 是不予许有自己的名字属性 Name 的。如果设置了名字,那么将有一错误:
具体原因,请高手在下方留言区向我们新手解释下。这边一并谢过了!
第二个坑坑:插入到TabItem的Frame不用设置宽高属性。这样子Frame包含的Page就能自适应TabItem的大小,这一点。有牛人博客可以搜索到。人家解释的很详细。可以找来看看。我这边主要是困在第一个坑上面。
下面的代码奉送!
private int getTabItemIndex(string head) {
int count = myTabControl.Items.Count;
for (int i = 0; i < count; i++)
TabItem tt = myTabControl.Items[i] as TabItem;
if (head.Equals(tt.Header.ToString())) { return i; }
return -1;
今天说下TabControl中遇到的坑 ,如题。废话不多说,先上代码:private void creatNewTab(string head,string url) { int index = getTabItemIndex(head); if (index == -1) { index = myTabCont...
tabtage = new TabPage();
MainTabControl.TabPages.Add(tabtage);
MainTabControl.SelectedTab = tabtage;
private void OpenForm(Form objFrm)
新建一个WinForm程序,拖一个
TabControl(在tabPages属性里面将默认的两个TabPage删除)和三个Button(增加、删除、修改)
public partial class Form1 : Form
private int index = 0;
public Form1()
WPF TabControl 是一款非常常用的控件,它是一种选项卡式控件,可以用于在单个窗口或页面上分组相关内容或功能区域。通过使用 TabControl 控件,用户可以轻松地切换不同的视图或内容,提高应用程序的可用性和易用性。
在 WPF 中,TabControl 控件是一个相对灵活的控件,它可以轻松地扩展和自定义,使其适合不同的需求和设计。TabControl 控件使用 TabItem 控件作为其选项卡,它们可以包含任何 WPF 控件,包括图像、文本、控件和其他元素。
TabControl 控件具有许多属性和事件,可以轻松地控制其外观和行为。例如,您可以使用 TabControl 的 SelectedIndex 属性来确定当前选中的选项卡,也可以使用 TabItem 的 IsEnabled 属性禁用不需要的选项卡。TabControl 还支持鼠标和键盘事件,如鼠标悬停、双击和按键等。
一个常见且有用的 TabControl 应用是在一个多视图应用程序中使用它。每个 TabItem 可以代表一个视图,并且在用户选择不同的选项卡时,将会切换到不同的视图。这可以极大地简化复杂的应用程序,并使其易于使用。
总之,WPF TabControl 是一个功能强大、灵活且易于使用的控件,它被广泛用于开发窗体应用程序。通过良好的设计和实现,TabControl 可以大大提高应用程序的易用性和可用性,受到开发者和用户的喜爱。