2014-09-04 41 views
5

Win8.1 için Windows Mağazası Uygulamasında (C# ile) dairesel bir yol üzerinde bir metni canlandırmaya çalışıyorum. İnternette Silverlight ve WPF ile nasıl yapılacağına dair bazı örnekler olsa da, bunlar WinRT'de hiç çalışmıyor gibi gözüküyor (örneğin pek çok yöntem eksik).Winst'te dairesel bir yoldaki metni nasıl canlandırabilirim?

Bir çözüm ararken, aşağıdaki Stackoverflow sorusunu da buldum, ancak Windows 8.1 değil Windows 8.1 için de geçerliydi, bu yüzden çalışmayı başaramadım.

how to create motion of text along Path animation in winrt application?

-re uygulanması sıfırdan herşeyi olmadan Bunun için herhangi bir çözüm var mı?

+0

Bu durumu düşündüm (http://studentguru.gr/b/kaisaras89/archive/2013/02/23/enabling-an-element-to-animate-on-a-path-on-windows-8 -store-apps-ie-make-a-pathlistbox-layoutpath-for-windows-rt) RT bir LayoutPath alternatifi sağlamak için oldukça düzgün, sadece bir yorum olsa da, bunu kullanmak için bir şans yoktu. –

+1

İyi bir ipucu, büyük olasılıkla bazı çözümler uygulamak zorundayım, böylece harfler bir bütün olarak değil, bütün bir TextBlock üzerinde birer birer "rotasyon" yapar, ama yine de iyi bir başlangıç ​​olabilir. Teşekkürler –

+0

Eğer bireysel harflerle gidiyorsanız, çok daha kolaylaşır, sadece bir elipsi kılavuz olarak ayarlayın, konumlandırın ve rotasyon dönüşümlerinizi bir hikaye tahtasında ayarlayın, ter yok. LayoutPath emin olmak için geçmiş senaryolarda kullanışlıdır. –

cevap

0

Bu çalışmıyor mu? Tamamen bir XAML Çözüm. Storyboard yüklenir.

<Window x:Class="WpfApplication3.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
      <Storyboard x:Key="Rotate"> 
       <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="Label1"> 
         <EasingDoubleKeyFrame KeyTime="0" Value="0"/> 
         <EasingDoubleKeyFrame KeyTime="0:0:1" Value="360"/> 
       </DoubleAnimationUsingKeyFrames> 
      </Storyboard> 
    </Window.Resources> 
    <Window.Triggers> 
      <EventTrigger RoutedEvent="FrameworkElement.Loaded"> 
       <BeginStoryboard Storyboard="{StaticResource Rotate}"/> 
      </EventTrigger> 
    </Window.Triggers> 
<Grid> 
    <Label x:Name="Label1" Content="WordsAndStuff" HorizontalAlignment="Left" Margin="218.388,112.806,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.509,1.782"> 
      <Label.RenderTransform> 
       <TransformGroup> 
         <ScaleTransform/> 
         <SkewTransform/> 
         <RotateTransform/> 
         <TranslateTransform/> 
       </TransformGroup> 
      </Label.RenderTransform> 
    </Label> 

</Grid> 
dışarı

+1

Bu düzgün, ancak WinRT/XAML yerine bir WPF çözümü ve ayrı harfler yerine tek bir etiket üzerinde çalışıyor. –

1

Kontrol Örnek için WinRT XAML Toolkit CascadingTextBlock kontrol nasıl birden içine bir TextBlock kırmak için. Dönüşümlerin animasyon şeklini değiştirmelisiniz. Metniniz sabit bir dizeyse - yalnızca Blend'deki animasyonu oluşturmak en iyisi olabilir - bir daire üzerinde birden çok tek harfle TextBlocks düzenleyin ve sağlanan araçları kullanarak animasyonu tasarlayın.

+0

Bu sabit bir dize değil, ama CascadingTexBlock'unuzun kullanışlı bir ipucu, ona bir bakacağım. –

İlgili konular