繁体   English   中英

WPF样式触发不起作用?

[英]WPF Style Trigger Not Working?

美好的一天,

我有一个带有黑色背景的TextBlock元素和带有黑色前景色的文本。 在任务完成之前,我不希望我的用户看到文本。 然后文本将变成绿色。

我在xaml中的样式触发器如下所示:

    <Style x:Key="DataImportCompletedStyle" TargetType="{x:Type TextBlock}">
        <Setter Property="Foreground" Value="#FF000000" />
        <Style.Triggers>
            <DataTrigger Binding="{Binding IsImportCompleted}" Value="True">
                <Setter Property="Foreground" Value="#FF99F999" />
            </DataTrigger>
        </Style.Triggers>
    </Style>

我的TextBlock看起来像:

        <TextBlock x:Name="ImportStatusMesage"
                   Grid.Row="3"
                   Margin="5,0,5,10"
                   Background="Black"
                   FontSize="18"
                   Foreground="#FF000000"
                   Style="{StaticResource DataImportCompletedStyle}"
                   Text="Data Import Completed" />

我的IsImportCompleted布尔属性的代码是:

    private bool isImportCompleted;
    public bool IsImportCompleted 
    { 
        get { return isImportCompleted; }
        set
        {
            isImportCompleted = value;
            System.Diagnostics.Debug.WriteLine("Import Process Completed...OnPropertyChanged");
            OnPropertyChanged("IsImportCompleted");
        }
    }

它实现了INotifyPropertyChanged。 任务正常工作并更新IsImportCompleted属性,因为我在输出窗口中看到我的消息,但文本不会更改颜色。

我想通过使用INotifyProperty来UI会更新自己。

我正在使用Snoop并验证IsImportCompleted设置为true。 但仍然没有文字颜色的变化。

任何建议,

TIA,

COSON

我引用了Asker的评论。 据他说,这解决了他的问题

没关系,我想通了。 我在我的XAML中设置Foreground属性,它将始终覆盖我根据优先级规则在触发器中设置的属性。 一旦我在TextBlock标签中取出了Foreground属性定义,一切正常!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM