Je suis juste le style du contrôle Expander dans WPF. J'ai défini uniquement les styles dans Expander Control Template
, mais je ne suis pas en mesure d'afficher le contenu de l'expandeur lorsque je clique dessus. Je suppose que je dois aussi définir les triggers de l'expandeur? mais je ne sais pas quel triger et comment le définir. Aussi pourquoi je dois définir des déclencheurs quand je ne fais que coiffer l'expandeur.Modèle de contrôle Expander stylé et pas en mesure d'afficher le contenu étendu sur Cliquez
<Window x:Class="ExpanderControl.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<Style TargetType="Expander">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Expander}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
<RowDefinition Height="0" Name="contentRow"></RowDefinition>
</Grid.RowDefinitions>
<!--Expander Header-->
<Border Background="AliceBlue"
Grid.Row="0"
>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="20"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ContentPresenter Grid.Column="0" ContentSource="Header"
RecognizesAccessKey="True"
VerticalAlignment="Center"
HorizontalAlignment="Left"
Margin="5"
></ContentPresenter>
<ToggleButton Grid.Column="1">
<TextBlock>x</TextBlock>
</ToggleButton>
</Grid>
</Border>
<!--Expander Content-->
<Border Background="Aqua" Grid.Row="1">
<ContentPresenter Grid.Row="1"></ContentPresenter>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Expander Header="Expander" HorizontalAlignment="Left" Margin="205,95,0,0" VerticalAlignment="Top" Width="200">
<Grid Background="#FFE5E5E5">
<Menu>
<MenuItem Header="hi"></MenuItem>
</Menu>
</Grid>
</Expander>
</Grid>
</Window>
Vous définissez 'height = "0"' sur la ligne du contenu. Il n'y a rien de lié à 'IsChecked' du' ToggleButton' pour faire quelque chose quand il est ouvert/fermé. Fondamentalement, cela ne fait rien. Vérifiez comment [Expander Styles et modèles] (https://msdn.microsoft.com/library/ms753296 (v = vs.100) .aspx) – dkozl
@dkozl J'ai vu cela, mais je ne suis pas capable de comprendre comment faire cette? Aussi, je veux le 'IsCheck' lié à l'expander entier non seulement' ToogleButton' –