如何将图像添加到 mahapps tabcontrol

How to add Image to mahapps tabcontrol

我想创建包含文本和图像的选项卡项

我发现 this 问题,但它不再相关,因为 Controls:MetroImage 已过时。

MetroDemo.exe 有如何使用 TabControl 的示例,但没有关于如何做我想做的事情的演示。

有人有什么建议吗?

MahApps 只是扩展或重新设计了现有的 WPF 控件。有些人没有意识到的是,你想做的一切都已经成为可能,而无需做任何特别的事情。

TabItem.Header 属性 是 object,并使用 ContentPresenter 设置样式。这意味着您可以自由地做这样的事情:

 <TabItem>
     <TabItem.Header>
         <Grid>
             <Grid.ColumnDefinitions>
                 <ColumnDefinition Width="Auto"/>
                 <ColumnDefinition/>
             </Grid.ColumnDefinitions>
             <Image Height="20" Width="20" Source="Resources/myimg.png"/>
             <TextBlock Grid.Column="1">Hello World!</TextBlock>
         </Grid>
     </TabItem.Header>
 </TabItem>

在 MahApps 预发行版 (1.3.0+) 中引入了一个新的 ModernUIPackIcon 和变体,这极大地简化了当前在 MahApps.Resources 包中的预打包图标的使用。如果您只想使用其中之一,可以替换 Image 元素。

也许我迟到了,但我就是这样做的,而且效果很好。

<TabItem  HorizontalAlignment="Center" VerticalAlignment="Bottom" FontFamily="Calibri" FontSize="8">
            <TabItem.HeaderTemplate>
                <ItemContainerTemplate>
                    <StackPanel Orientation="Vertical">
                        <icons:PackIconModern Width="16" Height="16" Kind="ColumnThree" HorizontalAlignment="Center"/>
                        <TextBlock FontSize="12">Columns</TextBlock>
                    </StackPanel>
                </ItemContainerTemplate>
            </TabItem.HeaderTemplate>
        </TabItem>

输出是 -

由于接受的答案“重置”了主题,我找到了一个保留样式的解决方案。这是通过使用 ContentPresenter 和 Headertemplate 完成的。

(DockPanel可以切换成Grid。)

<TabItem >
    <TabItem.HeaderTemplate>
        <DataTemplate>
            <DockPanel>
                <iconPacks:PackIconMaterial Kind="Bell" DockPanel.Dock="Left" VerticalAlignment="Center"/> <!-- or any other image -->
                <ContentPresenter Content="Content or Binding or... Hello World!"/>
            </DockPanel>
        </DataTemplate>                    
    </TabItem.HeaderTemplate>
    <!-- normal Tab content-->              
</TabItem>