What
WhileContainsText still triggers when a TextEdit first has an input, but that is then removed.
Replicate
<Text ux:Name="placeholder" Value="Foo Bar">
<TextEdit>
<WhileContainsText>
<Set placeholder.Opacity="0" />
</WhileContainsText>
</TextEdit>
At first the placeholder will be visible, but when the text is edited it will be hidden. But if you then proceed to remove all the input again, the placeholder never comes back.