2013-01-04 39 views
0

我試圖讓下面的TextBlocks成爲摺疊的崩潰不能正常工作,但它不工作:能見度=在DockPanel中

<DockPanel Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" LastChildFill="False" > 
<DockPanel.Resources> 
    <Style x:Key="ReferenceValues" TargetType="{x:Type TextBlock}"> 
     <Style.Triggers> 
      <Trigger Property="Text" Value=""> 
       <Setter Property="Visibility" Value="Collapsed" /> 
      </Trigger> 
      <Trigger Property="Text" Value="{x:Null}"> 
       <Setter Property="Visibility" Value="Collapsed" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</DockPanel.Resources> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropFullName}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropTitle}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropUserName}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropYear}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropEmailAddress}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropStartingPage}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropEndingPage}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropStartingDate}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropEndingDate}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropLastUpdate}" Margin="2,2,2,2" Visibility="Visible"/> 
<TextBlock Style="{StaticResource ReferenceValues}" FontFamily="Segoe UI Light" FontSize="14" DockPanel.Dock="Top" Text="{Binding PropFileFormat}" Margin="2,2,2,2" Visibility="Visible"/> 
... 
</DockPanel> 

他們只是顯示爲白色的空間,當值null""DockPanel自動不呈現不顯示的控件嗎? (只有3個TextBlocks可以容納72個像素。)

+0

屬性的值由依賴項屬性值優先級確定。看到這個鏈接從MSDN - http://msdn.microsoft.com/en-us/library/ms743230.aspx – Manish

回答

2

每個TextBlock上的可見性屬性的顯式設置將覆蓋樣式。刪除Visibility="Visible"屬性,TextBlocks將根據您的樣式按預期進行渲染。

如果你想默認的可見性是可見的,則設置在樣式默認:

<Style x:Key="ReferenceValues" TargetType="{x:Type TextBlock}"> 
    <Setter Property="Visibility" Value="Visible" /> 
    <Style.Triggers> 
     <Trigger Property="Text" Value=""> 
      <Setter Property="Visibility" Value="Collapsed" /> 
     </Trigger> 
     <Trigger Property="Text" Value="{x:Null}"> 
      <Setter Property="Visibility" Value="Collapsed" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
+0

啊,好spotting,我從來沒有注意到, –

+0

謝謝,它的工作。已回答和Upvoted。 – JosephGarrone