2012-05-07 22 views
14

sorunWindows 8 XAML

aşağıdaki önemsiz XAML Windows 8 üzerinde Metro tarzı C#/XAML uygulamasında bir kontroller yüksekliğinin basit film şeridi tabanlı animasyon gerçekleştiren yaşıyorum kontrolün yüksekliği animasyon nasıl ve snippet'lerinde arkasında kodu (en azından benim için) Silverlight 5 ve Windows Phone 7'de iyi çalışır, Windows henüz 8'de hiçbir şey:

<Page.Resources> 
    <Storyboard x:Name="expandAnimation"> 
     <DoubleAnimation Storyboard.TargetName="scaleButton" Storyboard.TargetProperty="Height" From="50" To="200" Duration="0:0:1"/> 
    </Storyboard> 
</Page.Resources> 

<StackPanel Width="200"> 
    <Button x:Name="scaleButton" Click="scaleButton_Click" Content="Scale"/> 
    <Button Content="Another button"/> 
    <Button Content="Yet another button"/> 
</StackPanel> 

C# kodu:

private void scaleButton_Click(object sender, RoutedEventArgs e) 
{ 
    expandAnimation.Begin(); 
} 

aynı kod can Beklendiği gibi çalışan Opaklık gibi kontrolün diğer özelliklerini canlandırmak için değiştirilmelidir.

Ölçeklendirmeyi yapmak için bir ScaleTransform'u canlandırabilirim, ancak kontrolün dahili oluşturulmasını değiştirir ve benim için bir sorun olan komşu denetimlerin yerleşimini etkilemez.

Umarım burada açık bir şey eksik değilim, ama bu sadece işe yaramaz mı?

cevap

29

Sadece EnableDependentAnimation="True" ekleyebilmeniz ve sonra düzgün çalışması gerekir.

+1

Çok teşekkürler @Sofian! Yukarıdaki xaml'deki DoubleAnimation öğesine "EnableDependentAnimation =" True "ifadesini eklemek hile yaptı. – Pete

+0

Çok teşekkürler ama bu mülkün ne yaptığını açıklayabilir misiniz. – Stilgar

+1

@Stilgar http://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj819807#dependent nedenini açıklar – legends2k

2

Xaml'ın yeniden yerleşmesine neden olacak bağımlı bir animasyon. Pahalı; bu nedenle bir "katılım" gerektirir.

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.ui.xaml.media.animation.pointanimation.enabledependentanimation.aspx

Mümkünse bir dönüşümü ve bunun yerine eleman görsel ölçek kılmasıdır kullanmalıdır. Bu, bağımsız olarak, sayfadaki öğelerin geri kalanının uyum sağlamaya gerek duymayacağı anlamına gelir.