簡體   English   中英

如何在擴展的Button控件中隱藏Click事件?

[英]How to suppress the Click event in extended Button control?

我的Windows Phone應用程序中有一個自定義按鈕。 該按鈕將覆蓋OnClick方法,以防止執行常規的單擊例程:

protected override void OnClick()
{
    if(ProgressBar != null
        && DelayDuration.HasValue
        && DelayDuration.Value.HasTimeSpan
        && DelayDuration.Value.TimeSpan > TimeSpan.Zero)
    {
        // Suppress the default click action
        return;
    }

    base.OnClick();
}

現在,我需要將我的應用程序轉換為Windows應用商店之一。 但是Button類沒有OnClick方法! 如何擴展派生控件中的Button行為?

按鈕有Click事件。 http://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.ui.xaml.controls.primitives.buttonbase.click.aspx

您可以在Windows Phone或Windows Store應用程序中覆蓋按鈕的OnTap方法

protected virtual void OnTapped(
  TappedRoutedEventArgs e
)

如果要防止事件隧道e.Handled = true ,請設置e.Handled = true

出於所有實際目的,Tap和Click事件等效於Button。

Click事件最初是在Silverlight中為台式機Windows定義的,僅為Button控件(及其派生類,例如HyperlinkBut​​ton)定義。 您可以將Click事件視為處理按鈕按下的“傳統”方式。

Tap事件已添加到Windows Phone 7.1(Mango)中的框架中。 Tap在UIElement類中定義,該類是許多類型的控件的父級。 您可以在TextBlock,Image和許多其他控件中處理Tap事件。 Button也是UIElement的子類,因此也可以接收Tap事件。 Button可以同時接收Tap和Click事件是多余的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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