Текстовое свойство TextBlock не может быть установлено с помощью триггера стиля, если оно непустое - почему?

StackOverflow https://stackoverflow.com/questions/812822

  •  03-07-2019
  •  | 
  •  

Вопрос

Приведенный ниже 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>

Но, если текстовый атрибут отсутствует:

 <Grid>
    <TextBlock/>
</Grid>

Текст действительно меняется при наведении курсора мыши.Кто-нибудь знает теорию, стоящую за этим?

Это было полезно?

Решение

Это проблема приоритета DependencyProperty, когда вы на самом деле устанавливаете свойство как в:

<TextBlock Text="original"/>

это имеет приоритет над значением, установленным в триггере.

видишь

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top