Я собираюсь создать новый элемент управления Expander (обучения) цели путем создания различных шаблонов, но не могу понять, что я делаю неправильно ...WPF Expander Шаблонирование - Отображение контента выше ToggleButton
ToggleButtonTemplate:
<ToggleButton>
<ToggleButton.Template>
<ControlTemplate TargetType="ToggleButton">
<Border x:Name="eBB" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Path x:Name="Sign" Data="M 0,10 L 7.5,2.5 L 15, 10" Stroke="Black" Width="15">
<Path.RenderTransform>
<RotateTransform Angle="0"/>
</Path.RenderTransform>
</Path>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Data" TargetName="Sign" Value="M 0,2.5 L 7.5,10 L 15,2.5"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Stroke" Value="#222" TargetName="Sign"/>
<Setter Property="Background" Value="#666" TargetName="eBB"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Stroke" Value="#FF003366" TargetName="Sign"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ToggleButton.Template>
</ToggleButton>
Expander Шаблон:
<Expander>
<Expander.Template>
<ControlTemplate TargetType="Expander">
<Grid>
<Grid.RowDefinitions>
<RowDefinition x:Name="ContentRow" Height="*"/>
<RowDefinition Height="20"/>
</Grid.RowDefinitions>
<ContentPresenter Grid.Row="0" Visibility="Collapsed" Content="{TemplateBinding Content}"/>
<local:FullSizeExpanderToggleButton Grid.Row="1" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter Property="Visibility" Value="Visible"/>
<Setter Property="Height" Value="*" TargetName="ContentRow"/>
</Trigger>
<Trigger Property="IsExpanded" Value="False">
<Setter Property="Height" Value="0" TargetName="ContentRow"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Expander.Template>
</Expander>
Теперь, когда я хочу добавить Expander в моем главном представлении
<custom:FullSizeExpander Width="300">
<Button/>
</custom:FullSizeExpander>
все пространство внутри элемента управления заполняется кнопкой (ToggleButton больше не виден).
Что я делаю неправильно?
Кроме того у меня есть некоторые вопросы, касающиеся этого вопроса:
- Что "ContentSource =" Content "" делать? Для чего это? Что отличается от «Content =» {Templatebinding Content} «"?
- Изменяется ли свойство Expander «IsExpanded» при изменении свойства ToggleButtons «IsPressed»? Что делать, если в расширителе нет Togglebutton?
Вы должны рассмотреть возможность сокращения текста до одного вопроса. Мне не хочется отвечать на «дополнительные вопросы» внизу, но я мог бы рассмотреть главный вопрос. – grek40