2013-07-19 20 views
6

Taşımak veya kaydırmak için bir kılavuz çizin. Tüm bu unsurları taşımak istiyorum, bu yüzden sadece ızgarayı birlikte hareket ettirmek mümkün değil mi? Bu, gördüğüm şeyden herhangi bir etki yapmıyor ve ScaleX'i bile denedim.Doğru WPF

<Grid x:Name="HancockDetails" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100" Grid.Column="1" RenderTransformOrigin="0.5,0.5">      
    <Rectangle HorizontalAlignment="Left" Height="100" Stroke="Black" VerticalAlignment="Top" Width="100"/> 
    <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Foreground="#FFF30000"/>    
      </Grid> 
      </Grid> 
     </s:ScatterViewItem> 

Benim fonksiyonu:

Storyboard sb = new Storyboard(); 

DoubleAnimation slide = new DoubleAnimation(); 
slide.To = 3000.0; 
slide.From = 0; 
slide.Duration = new Duration(TimeSpan.FromMilliseconds(40.0)); 

// Set the target of the animation 
Storyboard.SetTarget(slide,HancockDetails); 
Storyboard.SetTargetProperty(slide, new PropertyPath("RenderTransform.(ScaleTransform.ScaleY)")); 

// Kick the animation off 
sb.Children.Add(slide); 
sb.Begin(); 

cevap

6

, aksi çalışma zamanı bulamıyorum:

<Grid x:Name="HancockDetails" ...> 
    <Grid.RenderTransform> 
     <TranslateTransform /> 
    </Grid.RenderTransform> 
</Grid> 

gol slayt olduğundan ben ScaleTransform sen TranslateTransform kullanmak istediğiniz varsayalım değil, ızgarayı yeniden boyutlandırmak değil mi?

Storyboard.SetTargetProperty(slide, 
    new PropertyPath("RenderTransform.(TranslateTransform.X)")); 
+0

'RenderTransform. (TranslateTransform.XProperty)' özellik yolundaki tüm özellik referanslarını çözemez. Uygulanabilir nesnelerin özellikleri desteklediğini doğrulayın. – user99999991

+0

Ayrıca "" – user99999991

+0

@ user2229804 ile de denedim, yukarıda yaptığım gibi, TranslateTransform'a doğrudan başvurabilir misiniz? Bence bu daha az kafa karıştırıcı. Eğer yapamıyorsanız, o zaman doğru sözdiziminin "(FrameworkElement). (TranslateTransform.X)" olacağını düşünmekteyim. – McGarnagle

5

yerine elle bir film şeridi oluşturmak için çalışmakla o Expression Blend kullanmak muuuuuuch kolaydır. Onun Visual Studio övgü onun ücretsiz bir tasarım aracı. Açıklamakta olduğunuz film şeridi, 30 saniye sürecek ve kod olmayacaktı. Daha sonra çalıştırmak istediğinizde sadece StoryBoardName.Begin()

Kolayca mı? Heres bir kaynak. http://msdn.microsoft.com/en-us/expression/cc197141.aspx

Önce işaretlemesinde RenderTransform eklemem gerekiyor
+0

Blend'de kolay olduğunu kabul ediyorum, ancak temel olarak her nesne için özel olarak oluşturmam gerekiyor. Ve aynı şekilde hareket etmek istediğim birçok eşyam var. Eminim bunun etrafında bir yol var, ama daha karmaşık görünüyor, o zaman sadece tek bir fonksiyon yapmıyor mu? – user99999991

+0

-1, Blend asla VS'yi iltifat edemez. – Nitesh

+2

@Nitesh Ne hakkında konuşuyorsunuz? Blend, geliştirme için mükemmel bir araçtır. Birçok profesyonelin bildiği gibi, mühendisler UI uzmanı değildir. Yani, aynı zamanda kod ve tasarım yapmak zorunda olduğunuzda, tasarım genellikle WAY kısalır. Sorunun yarısını (kod) alabilirseniz, doğru olana odaklanabilirsiniz. İfade Karışımı harika bir araçtır. –