1

我想将 Live Tile 效果添加到我的 wpf 应用程序布局上的图块中。我正在为视觉效果使用 MahApps.Metro 库。这是我在布局上的一个图块的示例-

<Controls:Tile Height="110" Background="#9c6b50" Width="180" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="0,105,33,0">
    <Controls:Tile.Content>
        <TextBlock Text="Setup Your Savings Account" TextWrapping="Wrap" Width="121" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Controls:Tile.Content>
</Controls:Tile>

我希望瓷砖的最终产品在这两个文本之间切换:

  1. 设置您的储蓄账户
  2. 单击此处设置您的储蓄账户
4

2 回答 2

1

普遍接受的方法是绑定 Text 属性。绑定看起来像这样:

<TextBlock Text="{Binding Path=TileText}" TextWrapping="Wrap" Width="121" HorizontalAlignment="Center" VerticalAlignment="Center"/>

这样做是将 TextBlock 的值绑定到控件的 DataContext 上名为 TileText 的属性。您需要查看 WPF 中的 DataContext 和绑定才能理解这一点。

一旦你有一个属性类:

public string TileText
{
    get {...}
    set {...}
}

并且该类设置为 Tile 控件的 DataContext,您可以更改 TileText 属性的值,它将更改 TextBlock 的文本。这是一个简单的 MVVM 设计示例,可以作为理解智能 WPF 设计实践的良好第一步。

干杯,埃里克

于 2013-10-08T02:19:06.627 回答
0

尝试这个!

<controls:Tile Height="110" Background="#9c6b50" Width="180" VerticalAlignment="Top" HorizontalAlignment="Right" Margin="0,105,33,0">
        <controls:Tile.Style>
            <Style TargetType="controls:Tile">
                <Setter Property="Content">
                    <Setter.Value>
                        <TextBlock Text="Setup Your Savings Account" TextWrapping="Wrap" Width="121" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Content">
                            <Setter.Value>
                                <TextBlock Text="Click here to Setup Your Savings Account" TextWrapping="Wrap" Width="121" HorizontalAlignment="Center" VerticalAlignment="Center"/>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </controls:Tile.Style>
    </controls:Tile>
于 2015-06-12T20:22:05.420 回答