一、先造一個窗體,然后在窗體里面增加菜單欄及原始的TabControl選項卡
<Grid> <Menu> <MenuItem Header="文件" Click="MenuItem_Click_3"> <MenuItem Header="打開新窗口" Click="MenuItem_Click_1"></MenuItem> <MenuItem Header="退出" Click="MenuItem_Click_4" ></MenuItem> </MenuItem> <MenuItem Header="幫助"> <MenuItem Header="關於我們"></MenuItem> </MenuItem> </Menu> <TabControl Name="TabControl1" HorizontalAlignment="Left" Height="337" Margin="0,20,0,0" VerticalAlignment="Top" Width="572"> <TabItem Header="原始窗口"> <Grid Background="#FFE5E5E5"> <TextBox HorizontalAlignment="Left" Height="305" Margin="0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="562"/> </Grid> </TabItem> </TabControl> </Grid>
二、當點擊打開新窗口,便彈出新窗口,並且在新窗口里增加一個占滿的文本框
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private int i = 0;//定義一個i用來使新造的Item名字不同 TextBox t;//每造一個新Item 然后將Textbox扔進去 private void MenuItem_Click_1(object sender, RoutedEventArgs e) //打開新窗口按鈕 { TabItem ti = new TabItem();//造一個新選項卡 ti.Header = "新窗口"+(i+1);//新選項卡的名字 TabControl1.Items.Add(ti);//將造好的新選項卡扔進TabControl1里 t = new TextBox();//實體化一個新文本框 t.Width = 562; t.Height = 305; //下面開始將文本框添加到新造的選項卡中 ti.Content = t; //每造一個新窗口便默認突出顯示為新窗口 TabControl1.SelectedIndex = i+1;
//TabControl1.SelectedIndex = TabControl1.Items.Count - 1; i++;
//雙擊每個選項卡觸發的事件
ti.MouseDoubleClick+=ti_MouseDoubleClick; } private void MenuItem_Click_4(object sender, RoutedEventArgs e)//關閉按鈕 { this.Close(); }
private void ti_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
TabItem s = (TabItem)sender; //sender代表每個選項卡
TabControl1.Items.Remove(s);
}
private void MenuItem_Click_3(object sender, RoutedEventArgs e) { } }