簡體   English   中英

WPF應用程序自定義路由事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM