麻应用平铺动画

本文关键字:动画 应用 | 更新日期: 2023-09-27 18:34:23

我想将动态磁贴效果添加到我的 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. 点击此处设置您的储蓄账户

麻应用平铺动画

普遍接受的方法是绑定 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 设计实践的良好第一步。

干杯Eric

试试这个!

<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>