|
昨天做個(gè)簡(jiǎn)單的演示,想偷懶,但同時(shí)又想用WPF再做一個(gè),稍微提高一下演示的美觀,助力拿下訂單。所以,在做完WinForm后,又做了一個(gè)wpf版本的,但控件在不同容器之間的移動(dòng),winform和wpf差別很大,winform很簡(jiǎn)單、直觀。但wpf就很坑了。 于是昨天下午網(wǎng)上搜了一些“答案”,都不能解決問(wèn)題。今天又重新理了一下頭緒,非常簡(jiǎn)單的實(shí)現(xiàn)了,并沒(méi)有用到網(wǎng)上那些很裝逼的答案。 效果圖 ,要實(shí)現(xiàn)的效果就是通過(guò)TabControl的Select事件,讓最子層的界面在第二層TabControl的不同TAbItem之間移動(dòng),而第二層TabControl又在最頂層的TabControl的TabItem之間移動(dòng)。偽造每個(gè)頁(yè)面都有內(nèi)容的假象,并且用黑體字符串來(lái)標(biāo)識(shí)不同的TabItem。 XAML代碼 1 <TabControl Grid.Row="1" Name="tabControl1" SelectedIndex="0" SelectionChanged="tabControl1_SelectionChanged"> 2 <TabItem Header="生產(chǎn)模式"> 3 <TabControl x:Name="tabControl2" SelectedIndex="0" SelectionChanged="tabControl1_SelectionChanged"> 4 <TabItem Header="單站查詢"> 5 <DockPanel x:Name="container" LastChildFill="True"> 6 <Grid DockPanel.Dock="Top"> 7 <Grid.RowDefinitions> 8 <RowDefinition/> 9 <RowDefinition/> 10 </Grid.RowDefinitions> 11 <Grid.ColumnDefinitions> 12 <ColumnDefinition Width="2*"/> 13 <ColumnDefinition Width="2*"/> 14 <ColumnDefinition Width="4*"/> 15 <ColumnDefinition Width="1*"/> 16 </Grid.ColumnDefinitions> 17 <Label Grid.Row="0" Grid.Column="0" Content="不良品查詢方式"/> 18 <ComboBox Grid.Row="1" Grid.Column="0" SelectedIndex="0"> 19 <ComboBoxItem Content="按固定時(shí)間查詢"/> 20 <ComboBoxItem Content="按批次查詢"/> 21 <ComboBoxItem Content="按產(chǎn)品型號(hào)查詢"/> 22 </ComboBox> 23 <Label Grid.Row="0" Grid.Column="1" Content="選擇日期"/> 24 <DatePicker Grid.Row="1" Grid.Column="1"/> 25 <Label Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" x:Name="lblTitle" Background="AliceBlue" FontWeight="ExtraBold" FontSize="20" VerticalAlignment="Center" HorizontalAlignment="Center"/> 26 <Button Content="生成報(bào)表" Grid.Column="3" Grid.Row="1"/> 27 </Grid> 28 <DataGrid x:Name="grid"/> 29 </DockPanel> 30 </TabItem> 31 <TabItem Header="所有數(shù)據(jù)查詢"></TabItem> 32 <TabItem Header="不良數(shù)據(jù)查詢"></TabItem> 33 <TabItem Header="巡檢件查詢"></TabItem> 34 <TabItem Header="報(bào)廢記錄查詢"></TabItem> 35 <TabItem Header="返工記錄查詢"></TabItem> 36 <TabItem Header="MES數(shù)據(jù)查詢"></TabItem> 37 <TabItem Header="產(chǎn)量查詢"></TabItem> 38 </TabControl> 39 </TabItem> 40 <TabItem Header="補(bǔ)單模式"> 41 </TabItem> 42 </TabControl> c#代碼 1 private void tabControl1_SelectionChanged(object sender, SelectionChangedEventArgs e) 2 { 3 TabControl tab = sender as TabControl; 4 TabItem tabItem = tab.SelectedItem as TabItem; 5 if (tabItem != null) 6 { 7 if (tab == tabControl1) 8 { 9 (tab.SelectedItem as ContentControl).Content = tabControl2; 10 } 11 else 12 { 13 (tab.SelectedItem as ContentControl).Content = container; 14 } 15 } 16 17 if (tabControl1.SelectedIndex != -1 && tabControl2.SelectedIndex != -1) 18 { 19 lblTitle.Content = (tabControl1.SelectedItem as TabItem).Header + "->" + (tabControl2.SelectedItem as TabItem).Header; 20 } 21 }
|
|
|