如何在 MahApps Tile 中添加 TextBlock?

How to add TextBlock inside MahApps Tile?

我想在 MahApps Tile 的标题中添加一个 TextBlock(考虑到将部分文本与某些属性绑定)。我已经试过了,但它说 "Property does not support values of type TextBlock".

<mah:Tile> 
<mah:Tile.Title>                             
    <TextBlock>                           
    </TextBlock>                        
</mah:Tile.Title>  

如何做到?

Tile 的标题 属性 明确希望传递一个字符串,因此您不能在此处 link TextBlock。

您现在可以执行以下操作:

  • 覆盖 Tile 的模板:这使您可以完全自由地构建外观,但您可能很容易失去 Tile 的某些行为
  • 我的建议:将 Tile 的标题留空并覆盖 Tile 的 ContentTemplate,以便在 Tile 的主要内容之外仅显示您自己的标题 TextBlock。在这种情况下,您绑定到图块的视图模型可能有一个 Body 和一个标题 属性 并且您的 xaml 包括数据模板可能如下所示:

有了这个你也可以将标题移动到你喜欢的任何位置

<mah:Tile DataContext="yourViewModel">
    <mah:Tile.ContentTemplate>
        <DataTemplate>
            <DockPanel LastChildFill="True">
                <TextBlock Text="{Binding Title}" DockPanel.Dock="Bottom" />
                <ContentControl Content="{Binding Body}" />
            </DockPanel>
        </DataTemplate>
    </mah:Tile.ContentTemplate> 
</mah:Tile>