2012-03-01 2 views
3

Cet Expander est vertical. Les affichages en-tête comme HightlightVertical Epander aimerait l'en-tête vertical

Je veux

H 
i 
g 
h 
l 
i 
g 
h 
t 

Comment il ça?

<Expander Grid.Row="0" Grid.Column="1" HorizontalAlignment="Right" 
    VerticalAlignment="Stretch" Header="Highlight" 
    ExpandDirection="Left" IsExpanded="False" Width="Auto"> 

Et la solution est

<Expander Grid.Row="0" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Stretch" ExpandDirection="Left" IsExpanded="False" Width="Auto"> 
     <Expander.Header> 
       <TextBlock><ItemsControl ItemsSource="Highlight" /></TextBlock> 
     </Expander.Header> 

HB si vous souhaitez afficher en tant que réponse que je vais l'accepter.

+0

double possible de [Texte vertical dans Wpf TextBlock] (http://stackoverflow.com/questions/349875/vertical-text-in-wpf-textblock) | 'Expander.Header' peut être quelque chose (il suffit d'utiliser [la syntaxe de l'élément de la propriété] (http://msdn.microsoft.com/fr-fr/library/ms788723.aspx#property_element_syntax)), donc cela se réduit au texte vertical. –

Répondre

4

Soit utiliser la syntaxe d'élément de propriété, sous forme de notes HB, ou si vous souhaitez appliquer le style générique, définir un style de DataTemplate pour votre extension, comme ceci:

<Grid.Resources> 
    <DataTemplate x:Key="verticalHeader"> 
    <ItemsControl ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Expander}}, Path=Header}" /> 
    </DataTemplate> 

    <Style TargetType="{x:Type Expander}"> 
    <Setter Property="HeaderTemplate" Value="{StaticResource verticalHeader}"/> 
    </Style> 
</Grid.Resources>