Раскадровка MVVM с использованием DataTrigger (взаимодействие) - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу, чтобы свойство непрозрачности TextBox менялось в зависимости от анимации.(От 0 до 1)

   <Window x:Class="DataTriggerAnime.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:DataTriggerAnime"
    mc:Ignorable="d"
    Title="MainWindow" Height="450" Width="800">
<Window.Resources>
    <Storyboard x:Key="MyAnimation">
        <DoubleAnimation  Storyboard.TargetName="text"
                          Storyboard.TargetProperty="Opacity"
                          To="1" Duration="0:0:4" />
    </Storyboard>
</Window.Resources>
<StackPanel>
    <TextBox Name="text" Text="ABC">
        <i:Interaction.Triggers>
            <ei:DataTrigger Binding="{Binding Path=IsOpen}" Value="True " Comparison="Equal">
                <ei:ControlStoryboardAction Storyboard="{StaticResource MyAnimation}" ControlStoryboardOption="Play"/>
            </ei:DataTrigger>
        </i:Interaction.Triggers>
    </TextBox>
</StackPanel>

«IsOpen» является логическим свойством и определено во ViewModel.«IsOpen» изменит значение false на true при нажатии определенной кнопки. Длительность составляет 4 секунды. Если кнопка нажимается более одного раза в 4 секунды или меньше, я хочу, чтобы «MyAnimation» начиналась с начала при каждом нажатии.

...