WPF 中的 DataTrigger 问题

Issues with DataTrigger in WPF

我在让 DataTrigger 调用 WPF 中的 Storyboard 时遇到问题。我已经为此工作了将近 3 个小时,希望有人能提供帮助!

这是我的 XAML 片段,其中包含 Storyboard/Trigger。

<Style x:Key="image" TargetType="{x:Type Image}">
    <Style.Resources>
        <Storyboard x:Key="LoadTitleScreen">
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="image">
                <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.6" Value="0"/>
            </DoubleAnimationUsingKeyFrames>
            <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="image">
                <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>
                <DiscreteObjectKeyFrame KeyTime="0:0:0.6" Value="{x:Static Visibility.Collapsed}"/>
            </ObjectAnimationUsingKeyFrames>
        </Storyboard>
    </Style.Resources>
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=IsLoginWrong}" Value="true">
            <DataTrigger.EnterActions>
                    <BeginStoryboard Storyboard="{StaticResource LoadTitleScreen}"/>
            </DataTrigger.EnterActions>
        </DataTrigger>
    </Style.Triggers>
</Style>

这是我设置 DataTrigger 值的 C# 代码 属性:

    public partial class MainWindow : Window, INotifyPropertyChanged
{

    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(String info)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }

    private Boolean _isLoginWrong;
    public Boolean IsLoginWrong
    {
        get { return this._isLoginWrong; }

        set
        {
            if (value != this._isLoginWrong)
            {
                this._isLoginWrong = value;
                NotifyPropertyChanged("IsLoginWrong");
            }
        }
    }

    Timer ConnectToServer = new Timer(3000);


    public MainWindow()
    {
        InitializeComponent();
        ConnectToServer.Elapsed += ConnectToServer_Elapsed;
        ConnectToServer.Start();
    }

    void ConnectToServer_Elapsed(object sender, ElapsedEventArgs e)
    {
        IsLoginWrong = true;
    }
}

IsLoginWrong 必须是实现 INotifyPropertyChanged 的​​依赖项 属性 或 属性,这样才能通知您的触发器它已更改。

如何实现 INotifyPropertyChanged:https://msdn.microsoft.com/library/ms229614(v=vs.100).aspx