2016-02-19 99 views
0

比方說,我有一個非常簡單的XAML動態隱藏WPF TabItem的

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:WpfApplication2" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="525"> 
    <StackPanel> 
     <TabControl> 
      <TabItem Header="Tab 1" Visibility="Hidden"> 
       <TextBlock>shfsdjkfhksh jkfhd sfjdklh sfjdkh fjdkh fdjhf </TextBlock> 
      </TabItem> 
      <TabItem Header="Tab 2" Visibility="Hidden"> 
       <TextBlock>3807689vthvybhgthugbbjgkngoebt4uibn54</TextBlock> 
      </TabItem> 
     </TabControl> 
    </StackPanel> 
</Window> 

如果我只設置TabItem的知名度爲隱藏,該選項卡里面的內容不隱藏。

有沒有辦法隱藏標籤頁眉及其內容?

回答

0

您可以通過將Visibility綁定到父控件來完成此操作。如果您正在使用視圖模型,則可以將可見性綁定到視圖模型中的屬性,並將該屬性用於TabItem和TextBlock。

<StackPanel> 
    <TabControl> 
     <TabItem x:Name="tab1" Header="Tab 1" Visibility="Hidden"> 
      <TextBlock Visibility="{Binding Path=Visibility, ElementName=tab1}">shfsdjkfhksh jkfhd sfjdklh sfjdkh fjdkh fdjhf</TextBlock> 
     </TabItem> 
    </TabControl> 
</StackPanel> 
+0

任何想法是錯誤的' shfsdjkfhksh jkfhd sfjdklh sfjdkh fjdkh fdjhf'它沒有看到爲我工作。 – hardywang

+0

您將通過實現視圖模型並綁定視圖模型中的屬性來節省大量頭痛。有一個視圖模型簡化了WPF中的許多問題。 – HoboCannibaL

+0

我知道,我需要快速交付一些POC。在實際工作中,我將使用PRISM。 – hardywang

1

如果設置VisibilityHidden選定/活動標籤,你需要選擇不同的標籤,例如

<StackPanel> 
    <TabControl> 
     <TabItem x:Name="T1" Header="Tab 1" Visibility="Hidden" > 
      <TextBlock>1111111111111111111</TextBlock> 
     </TabItem> 
     <TabItem x:Name="T2" Header="Tab 2" IsSelected="True"> 
      <TextBlock>22222222222222222222222</TextBlock> 
     </TabItem> 
    </TabControl> 
</StackPanel> 

你不需要隱藏TabItem內容提供的TabItem是隱藏的,不選。

+0

我想隱藏兩者呢?然後我沒有選擇。 – hardywang

+0

@hardywang然後在'TabControl'上設置'Visibility'。沒有任何標籤的「TabControl」是一個非常奇怪的設計。 – Guttsy