C# 在XAML WP8的用户控件中的自定义按钮中公开单击事件

C# 在XAML WP8的用户控件中的自定义按钮中公开单击事件,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,我有一个带有自定义/自定义样式按钮的用户控件。到目前为止,我使用Tap事件调用click操作。然而,水龙头似乎“太慢了”。因此,当我连续两次快速点击按钮时,只有第一次点击才会触发事件。当我在屏幕上有两个按钮并连续单击它们时,也会发生同样的情况。我猜这与点击事件有关(似乎只有当我的手指从屏幕上抬起时才会触发) 这就是为什么我想公开用户控件中按钮的单击事件,但不知道如何做到这一点 以下是我目前拥有的: C#用户控件的代码隐藏 使用System.Windows; 使用System.Wind

我有一个带有自定义/自定义样式按钮的用户控件。到目前为止,我使用Tap事件调用click操作。然而,水龙头似乎“太慢了”。因此,当我连续两次快速点击按钮时,只有第一次点击才会触发事件。当我在屏幕上有两个按钮并连续单击它们时,也会发生同样的情况。我猜这与点击事件有关(似乎只有当我的手指从屏幕上抬起时才会触发)


这就是为什么我想公开用户控件中按钮的单击事件,但不知道如何做到这一点


以下是我目前拥有的:


C#用户控件的代码隐藏

使用System.Windows;
使用System.Windows.Controls;
使用System.Windows.Data;
名称空间用户界面
{
公共部分类JapanButton:UserControl
{
公共静态只读DependencyProperty TextProperty=
DependencyProperty.Register(“文本”、typeof(字符串)、typeof(JapanButton)、null);
公共字符串文本
{
获取{return(string)GetValue(TextProperty);}
set{SetValue(TextProperty,value);}
}
公共双字号
{
获取{return(double)GetValue(FontSizeProperty);}
set{SetValue(FontSizeProperty,value);}
}
公共日本按钮()
{
初始化组件();
已加载+=已加载;
}
已加载专用void(对象发送方,RoutedEventArgs RoutedEventArgs)
{
var bindingTitle=新绑定();
bindingTitle.Source=文本;
ButtonJapan.SetBinding(ContentControl.ContentProperty,bindingTitle);
var bindingFontSize=新绑定();
bindingFontSize.Source=FontSize;
ButtonJapan.SetBinding(FontSizeProperty,bindingFontSize);
}
}
}

首先,在UserControl中创建自定义单击事件:

public event EventHandler Click;
然后,订阅按钮的单击事件:

public JapanButton()
{
    InitializeComponent();

    Loaded += OnLoaded;

    ButtonJapan.Click += ButtonClick;
}
最后,在事件处理程序中,启动自定义
单击
事件:

private void ButtonClick(object sender, RoutedEventArgs e)
{
    var eventHandler = this.Click;

    if (eventHandler != null)
    {
        eventHandler(this, e);
    }
}

工作起来很有魅力。谢谢这解决了问题,但没有回答涉及XAML的问题。@Jess对我来说,问题是“如何公开用户控件中按钮的单击事件”