如果非空,则无法通过样式触发器设置TextBlock Text属性 - 为什么?

Ser*_*hov 5 wpf xaml triggers textblock

下面的XAML不起作用(鼠标悬停时文本不会改变):

<Window.Resources>
    <Style TargetType="TextBlock">
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="Text" Value="hover"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<Grid>
    <TextBlock Text="original"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

但是,如果缺少Text属性:

 <Grid>
    <TextBlock/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

鼠标悬停时文本会发生变化.有人知道这背后的理论吗?

小智 6

当您实际设置属性时,这是一个DependencyProperty优先级问题:

<TextBlock Text="original"/>
Run Code Online (Sandbox Code Playgroud)

优先于触发器中设置的值.

看到

http://msdn.microsoft.com/en-us/library/ms743230.aspx