电竞比分网-中国电竞赛事及体育赛事平台

分享

WPF控件操作之改變父控件之TabControl示例

 精品唯居 2021-04-10

昨天做個(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         }

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多