【问题标题】:How to suppress the Click event in extended Button control?如何抑制扩展按钮控件中的 Click 事件?
【发布时间】:2014-05-15 08:45:44
【问题描述】:

我的 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 行为?

【问题讨论】:

    标签: c# wpf windows windows-runtime windows-store-apps


    【解决方案1】:

    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

    出于所有实际目的,Tap 和 Click 事件是等效的 一个按钮。

    Click 事件最初是在 Silverlight 桌面版中定义的 Windows 并且它只为 Button 控件(及其衍生控件)定义 例如超链接按钮)。您可以将 Click 事件视为 处理按钮按下的“传统”方式。

    Tap 事件已添加到 Windows Phone 7.1 (Mango) 的框架中。 Tap 是在 UIElement 类中定义的,它是许多的父类 控制类型。您可以在 TextBlock、Image、 和许多其他控件。 Button 也是 UIElement 的子类, 因此也可以接收 Tap 事件。一个 Button 是多余的 可以接收 Tap 和 Click 事件。

    【讨论】:

    • 不幸的是,点击不是点击
    猜你喜欢
    • 2011-10-28
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 2013-05-26
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多