[英]WPF application custom routed event
我想構建一些非常簡單的東西:
<EventTrigger RoutedEvent="MyCustomEvent">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="00:00:00.1" Storyboard.TargetProperty="Opacity" To="1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
這樣我就可以在代碼中調用如下代碼:
MyCustomEvent.trigger()
在WPF應用程序中,如何用C#簡單快速地做到這一點?
您必須對RoutedEvent
使用擴展方法,並使用UIElement.RaiseEvent
方法。
樣品:
public static class EventHandlerExtension
{
public static void TriggerThisEvent(this RoutedEvent routedEvt, FrameworkElement felem)
{
RoutedEventArgs args = new RoutedEventArgs(routedEvt, felem);
felem.RaiseEvent(args);
}
}
用法
XAML
<TextBox x:Name="Tbx" Text="type something here...">
<TextBox.Triggers>
<EventTrigger RoutedEvent="LostFocus">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="00:00:03" Storyboard.TargetProperty="Opacity" To="0" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TextBox.Triggers>
</TextBox>
碼
private void Btn1_Click(object sender, RoutedEventArgs e)
{
TextBox.LostFocusEvent.TriggerThisEvent(Tbx);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.