Minha filosofia geral do blog é que é perfeitamente possível blog velho, estabeleceu-se assuntos que foram cobertos até a morte em outro lugar. Presumo que este tópico é um daqueles, Mas eu estou blogando-Enfim.
Tenho trabalhado em uma janela loja app e estou na parte onde eu preciso fazer alguma animação. Para este fim., Estive pensando pedaços e pedaços do windows armazenam animação app que, como acontece, é bastante próximo ao, Mas não exatamente como, Animações XAML baseado em .NET (Ainda vou a lidar com o fato de que WinRT <> .NET 🙂 ).
Esta manhã eu queria obter uma alça sobre arrastar e soltar as operações. No caminho para que, Eu tenho esbarrado movendo-se um retângulo em vez disso :). Aqui está o código que move um retângulo quando o usuário clica em um botão:
1:
2: MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
3: Matriz m = ct.Matriz;
4: m.OffsetX = 10;
5: m.OffsetY = 10;
6: ATLMatriz = m;
7: rectBig.RenderTransform = ct;
O truque aqui é que não posso mudar diretamente OffsetX ou OffsetY. Pode haver uma maneira mais inteligente de fazer isso (e se você conhece e me sinto como, por favor, poste nos comentários).
Para fazer isso, Eu preciso:
1. Obter o MatrixTransform do retângulo (lançando RenderTransform).
2. Obter a matriz desse cara.
3. Alterar deslocamentos do Matrix.
4. Reatribuir a matriz para o MatrixTransform.
5. Reatribuir o MatrixTransform volta ao retângulo.
Para testá-lo, Eu coloquei um retângulo e botão na tela. Quando clico no botão, a lógica acima executa e move o retângulo imediatamente.
Em algum momento, Eu gostaria de animar isto, mas não faço ideia de como conseguir um DoubleAnimation para trabalhá-lo (Storyboard.SetTargetProperty() está sendo um mistério para mim sobre este para o tempo).
</fim>
Siga-me no Twitter em http://www.twitter.com/pagalvin