我没有尝试使用Controltemplate创建自定义扩展器。我的第一个问题是:我在哪里可以放置扩展器的内容(不是扩展器上显示的文本,如果单击扩展器,则内容会变为可见)?
这是我在App.xaml中的代码:
<Application.Resources>
<ControlTemplate x:Key="FileExpanderButton" TargetType="{x:Type ToggleButton}">
<Image Name="BrowseUsedFiles" Source="F:\AudioNodeGUI_XAML\images\Browse_used_files.jpg">
</Image>
</ControlTemplate>
<ControlTemplate x:Key="FileExpander" TargetType="{x:Type Expander}">
<DockPanel>
<ToggleButton x:Name="ExpanderButton" Template="{StaticResource FileExpanderButton}" OverridesDefaultStyle="True" DockPanel.Dock="Top"/>
<ContentPresenter x:Name="ExpanderContent"
Visibility="Collapsed"
Content="{TemplateBinding Content}"
DockPanel.Dock="Bottom" />
</DockPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="True">
<Setter TargetName="ExpanderContent"
Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Application.Resources>
</Application>
另一个问题:ContentPresenter究竟是什么?我可以简单地用我的内容替换它吗?
答案 0 :(得分:0)
Expander
是ContentControl
,意味着它包含内容(其他XAML),但该内容未在控件模板中定义,它由使用该控件的任何人定义。
ContentPresenter
来显示该内容,就像您似乎正在做的那样。