【发布时间】:2016-02-12 12:07:17
【问题描述】:
我使用以下代码以编程方式创建 TabItems,没有任何问题:
var tabItem = new TabItem();
tabItem.Header = "My Tab Header";
tabItem.Content = new UserControl1();
MainTabControl.Items.Add(tabItem);
现在,当一个选项卡项添加到选项卡控件时,我还想同时添加图像按钮,并在右侧对齐 TabItem 的创建。我怎样才能做到这一点?提前致谢。
编辑: 我已经尝试了很多,但仍然没有得到一个想法。以下是我在 xaml 和 ObservableCollection 中的 tabcontrol。当我成功运行项目选项卡时,我不知道如何在其中添加图像,因为在我的 xaml 选项卡控件中,它没有 TabItems 标记,并且它们在运行项目时自动显示。请查看我的示例代码并转换为我想要的结果。我想结束并关闭这个问题,非常感谢并感谢帮助。
以下是xaml:
<TabControl ItemsSource="{Binding TabItems, Mode=TwoWay}" DisplayMemberPath="Content" HorizontalAlignment="Left" Height="73" Margin="10,25,0,0" VerticalAlignment="Top" Width="312"/>
下面是视图模型
namespace WpfApplication1.ViewModels
{
public class VMTabControl : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyname)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyname));
}
[![enter image description here][1]][1]}
public VMTabControl()
{
TabItems = new ObservableCollection<clsTabs>(GetList().ToList());
}
private ObservableCollection<clsTabs> _tabItems;
public ObservableCollection<clsTabs> TabItems
{
get { return _tabItems; }
set
{
_tabItems = value;
OnPropertyChanged("TabItems");
}
}
public List<clsTabs> GetList()
{
List<clsTabs> tablist = new List<clsTabs>();
tablist.Add(new clsTabs { Content = "First", ImgPath = "path" });
tablist.Add(new clsTabs { Content = "Second", ImgPath = "path" });
return tablist;
}
}
}
【问题讨论】:
-
像关闭按钮?
-
是的,我想要一个关闭按钮,我看到了一些文章,但我想让它变得非常简单,就像上面以编程方式添加 TabItems 一样......请帮忙。
-
TabItem.Header不限于作为字符串 - 您也可以将 UI 控件用作标题。请注意,TabControl.ItemsSource是可绑定的,因此您不一定需要通过代码创建选项卡项。 -
谢谢 pieter,您能分享任何可以满足我需求的代码示例吗?谢谢。