Активируйте раскладку XAML при нажатии кнопки (приложение Windows 8)

В принципе, как я могу активировать простую анимацию с помощью кнопки, вместо того, чтобы автоматически ее воспроизводить? Я пытаюсь использовать обычные кнопки, переключающие кнопки и переключатели, но никто не работал.

Я намерен, чтобы изображение двери двигалось сразу после нажатия кнопки, и чтобы оно двигалось назад, когда вы нажимаете его снова. При нажатии на нее следует повторять поведение неопределенно долго.

Что входит в мой файл MainPage.xaml.

<grid>
 <grid.background>
 <imagebrush imagesource="Assets/1.png">
 </imagebrush></grid.background>

 
 <image.rendertransform>
 <!--<CompositeTransform x:Name="ImageTransform"/>-->
 <transformgroup>
 <translatetransform x:name="rdformTranslate" x="1" y="1">
 <scaletransform x:name="rdformScale" scalex=".25" scaley=".25">
 </scaletransform></translatetransform></transformgroup>
 </image.rendertransform>
 

</grid><button content="Button" horizontalalignment="Left" margin="772,572,0,0" verticalalignment="Top" click="BtnTest/>
<ToggleSwitch Header=" toggleswitch"="" toggled="ToggleButton"> 

 <p> Файл MainPage.xaml.cs</p> <pre class="prettyprint linenums"> private void ToggleButton(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 {
 Storyboard myStoryboard;
 myStoryboard = (Storyboard)this.Resources["rdformTranslate"]; 
 myStoryboard.Begin();
 }

 private void ToggleBtn(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 {
 Storyboard myStoryboard;
 myStoryboard = (Storyboard)this.Resources["rdformTranslate"];
 myStoryboard.Begin();
 }

 private void BtnTest(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 {
 Storyboard myStoryboard;
 myStoryboard = (Storyboard)this.Resources["rdformTranslate"];
 myStoryboard.Begin();
 }

Файл словаря ресурсов...

<storyboard x:name="rdformTranslate">
 </storyboard>

Приложение может работать, но после нажатия любой кнопки он сразу же "сбой". Я был бы очень признателен за любую помощь в решении проблемы.

Изменить добавленную ошибку из комментариев

Исключение типа "System.Runtime.InteropServices.COMException" произошло в mscorlib.dll, но не обрабатывалось в пользовательском коде WinRT: E_NETWORK_ERROR Дополнительная информация: Unspecified error Если есть обработчик для этого исключения, программа может быть безопасно продолжена.

1 ответ

Попробуйте изменить название Storyboard и сделать ее уникальной. Я думаю, что приложение вылетает, когда вы устанавливаете который является тем же именем Storyboard.

Также вам не нужно указывать имя трансформируемому объекту для назначения его свойства X Попробуйте Storyboard.TargetProperty = "(UIElement.RenderTransform).(TranslateTransform.X)". Вероятно, вам даже не нужно давать X значение по умолчанию, поскольку вы устанавливаете свойство From ***************.

Вы можете безопасно заменить <rendertransform>...</rendertransform> в вашем xaml с помощью .

licensed under cc by-sa 3.0 with attribution.