Search code examples
c#universal

universal app in windows 10 animation TranslateTransform


i want animate a wrap panel and move it to left ... my platform is windows 10 visual studio 2015 universal app

<Page
x:Class="App5.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App5"
xmlns:UniversalWrapPanel="using:Gregstoll"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
>

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid.RowDefinitions>
        <RowDefinition Height="80*"/>
        <RowDefinition Height="10*"/>
    </Grid.RowDefinitions>

        <UniversalWrapPanel:UniversalWrapPanel Name="mainGrid">

        </UniversalWrapPanel:UniversalWrapPanel>

</Grid>

this is my code :

double toValue = 800;
        DoubleAnimation animationSub = new DoubleAnimation()
        {
            Duration = TimeSpan.FromSeconds(8),
            To = toValue,
            BeginTime = TimeSpan.FromSeconds(3)
        };

        Storyboard storyBoardErrors = new Storyboard()
        {
            Duration = TimeSpan.FromSeconds(3 + 9),
            RepeatBehavior = RepeatBehavior.Forever,

        };
        Storyboard.SetTarget(animationSub, mainGrid);
        Storyboard.SetTargetProperty(animationSub, "(UIElement.RenderTransform).(TranslateTransform.X)");

        storyBoardErrors.Children.Add(animationSub);
        storyBoardErrors.Begin();

but throw Exception :

{"No installed components were detected.\r\n\r\nCannot resolve TargetProperty (UIElement.RenderTransform).(TranslateTransform.X) on specified object."}

No installed components were detected.

Cannot resolve TargetProperty (UIElement.RenderTransform).(TranslateTransform.X) on specified object.

i wont use canvas because cause wrap panel worn work correctly


Solution

  • In Your Wrappanel, you have to set an initial Transform first, so you can animate it in code like this:

    <UniversalWrapPanel:UniversalWrapPanel Name="mainGrid">
     <UniversalWrapPanel.RenderTransform>
                <TranslateTransform></TranslateTransform>
            </UniversalWrapPanel.RenderTransform>
    </UniversalWrapPanel:UniversalWrapPanel>