我有一个带有一些静态标签的标签控件。但是,我还想动态添加一些额外的选项卡。因此,我定义了一个标头模板(使用TabControl.ItemTemplate)和一个内容模板(使用TabControl.ContentTemplate)。但是,静态选项卡将显示不同的内容,因此我设置了单独的Tab项目的内容模板。但是出于某种原因,我为设置标签内容而创建的项目内容模板也适用于标题。
您可以从附带的屏幕截图和代码中看到,当标签标题设置为“电子邮件”时,标题内容会显示在标题和内容部分中。
如果您需要进一步澄清,请与我们联系。
public function injectConfigurationManager(
\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface $configurationManager
) {
$this->configurationManager = $configurationManager;
$typoScriptService = GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Service\TypoScriptService::class);
$typoScriptArray = $typoScriptService->convertPlainArrayToTypoScriptArray($originalSettings);
$stdWrapProperties = GeneralUtility::trimExplode(',', $originalSettings['useStdWrap'], true);
foreach ($stdWrapProperties as $key) {
if (is_array($typoScriptArray[$key . '.'])) {
$originalSettings[$key] = $this->configurationManager->getContentObject()->stdWrap(
$originalSettings[$key],
$typoScriptArray[$key . '.']
);
}
}
}
$this->settings = $originalSettings;
}
<TabControl Name="ResultsTabControl" SelectionChanged="Selector_OnSelectionChanged" Margin="-2,2" SelectedIndex="{Binding SelectedResultsTab, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<TabControl.Resources>
<Style TargetType="TabItem" BasedOn="{StaticResource AccentedMetroTabItemStyle}"></Style>
</TabControl.Resources>
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=Header}" />
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
<TextBlock Text="Testing"/>
</DataTemplate>
</TabControl.ContentTemplate>
<TabItem Name="EmailListTab" Header="Emails" Style="{StaticResource AccentedMetroTabItemStyle}">
<TabItem.ContentTemplate>
<DataTemplate>
<TextBlock Text="My Emails Tab"/>
</DataTemplate>
</TabItem.ContentTemplate>
</TabItem>
答案 0 :(得分:1)
问题是我们不知道controls1:ContentControlEx
中发生了什么。
基本上你错过了你风格标题的ContentPresenter
:
<ContentPresenter x:Name="contentPresenter" ContentSource="Header" Focusable="False" HorizontalAlignment="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
它可能是controls1:ContentControlEx
的一部分,但你必须也要显示它。