Я пытаюсь получить ContentControl
, чтобы применить ContentThemeTransition
, где содержимое будет строкой, поэтому, когда строка изменится с помощью привязки, новая строка будет анимирована. Я не могу использовать ContentThemeTransition
с a TextBlock
, поскольку это не происходит от ContentControl
.UWP ContentControl не применяет ContentThemeTransition
Вот пример XAML, который показывает проблему. Если я отредактирую текст в текстовом поле (который представляет текст в моей модели ViewModel, который действительно связан с ContentControl
), я ожидаю, что текст, показанный в ContentControl
, будет анимироваться, но это не так.
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBox Grid.Row="0" x:Name="text" Text="Hello" Width="100" Height="30"/>
<ContentControl Grid.Row="1" Width="100" Height="100" Content="{Binding ElementName=text , Path=Text}">
<ContentControl.Transitions>
<TransitionCollection>
<ContentThemeTransition HorizontalOffset="40"/>
</TransitionCollection>
</ContentControl.Transitions>
</ContentControl>
</Grid>
Что я делаю неправильно?
Большое спасибо за любую помощь.
UPDATE:
Хорошо, уже где-то в настоящее время. Если заменить ContentControl
XAML в
<ContentPresenter Background="Black" Foreground="Red" Grid.Row="1" Width="100" Height="100" Content="{Binding ElementName=text , Path=Text}">
<ContentPresenter.ContentTransitions>
<TransitionCollection>
<ContentThemeTransition VerticalOffset="-100"/>
</TransitionCollection>
</ContentPresenter.ContentTransitions>
</ContentPresenter>
затем он работает. Как ни странно, с VerticalOffset = -100, как и выше, новое значение анимируется за пределами ContentControl
, то есть его видимого вне границ элемента управления. Кто-нибудь знает, как изменить ситуацию, поэтому анимация появляется только в пределах ContentPresenter
?
Привет @Grace Фэн, пожалуйста, см. Мой UPDATE в оригинальном посте. Если я использую 'ContentPresenter', то я могу заставить его работать каждый раз, когда Text Changes отлично. Единственная проблема заключается в том, что если я использую 'VerticalOffset = -100', то текст явно плавает из-за пределов' ContentPresenter', который выглядит странно. – Cleve
@ Cleve, Моя ошибка, я заметил, что вы изменили 'HorizontalOffset' на' VerticalOffset', вы также изменили цель анимации.Я уточню свой ответ позже. –
@ Cleve, я обновил свой ответ, извините за свою ошибку. –