Çerçevem var. kod arkasındaWPF: İçerik için yönlendirilmiş bir etkinlik nasıl oluşturuldu?
FrameName.Content = new PageName();
ben sayfa değiştiğinde bir film şeridi başlamak istiyorum, ve XAML yapmak istiyorum, ve: Ben bu hat ile sayfaları geçin. Aşağıdaki kodu denedim: Ben orada fark biraz arama yaptıktan sonra
<Frame.Triggers>
<EventTrigger RoutedEvent="ContentChanged">
<BeginStoryboard Storyboard="{StaticResource storyboardName}" />
</EventTrigger>
</Frame.Triggers>
yerleşik bir o doğanın yönlendirilmiş olay. İlk cevap here
en dinamik yaklaşım sadece ContentChanged olayı sağlayabilecek kendi
etiketkontrolünü elde etmek olduğunu göstermektedir. Ben şuna benzer kullanmak XAML içindeusing System.Windows; using System.Windows.Controls; namespace ContentChangedTest { class MyFrame : Frame { public event DependencyPropertyChangedEventHandler ContentChanged; static MyFrame() { ContentProperty.OverrideMetadata(typeof(MyFrame), new FrameworkPropertyMetadata(new PropertyChangedCallback(OnContentChanged))); } private static void OnContentChanged(DependencyObject dp, DependencyPropertyChangedEventArgs e) { MyFrame frame = dp as MyFrame; if (frame.ContentChanged != null) { DependencyPropertyChangedEventArgs args = new DependencyPropertyChangedEventArgs(ContentProperty, e.OldValue, e.NewValue); frame.ContentChanged(frame, args); } } } }
:
Bu cevap Kodu uygulamak çalıştık
<local:MyFrame ContentChanged="MyFrame_ContentChanged" />
sorun sonunda ben bir oluşturmanız gerekir olmasıdır Olay işleyicisinde MyFrame_ContentChanged
kod arkasında. Bunu saf XAML'de yapmanın bir yolu var mı? Örneğin - ContentChanged
bağımlılık özelliğini bir tür yönlendirilmiş olaya dönüştürebilir miyim?
WPF'ye çok yeni geldim, bu yüzden bu aptalca bir soru. Ancak, ciddi bir cevap için minnettar olurdum. – Sipo
"EventTrigger" içinde kullanmak için bir "RoutedEvent" kullanmanız gerekir. Yönlendirilmiş olaylar, bağımlılık özelliklerine benzer şekilde tanımlanır. Sizin için iyi bir başlangıç noktası bu eğitici olacaktır: [Nasıl Yapılır: Özel Yönlendirilmiş Etkinlik Oluşturun] (https://msdn.microsoft.com/en-us/library/ms752288 (v = vs.100) .aspx). – Grx70
@ Grx70, \t Teşekkürler. Lütfen nasıl çalıştığını gösterebilir misiniz ve bunu yukarıdaki kodla nasıl entegre edebilirim? – Sipo