我有一个Windows应用商店应用,它有一个主窗体和几个用户控件。在每个用户控件中,我有一个图像,当点击时,应该触发用户控件之外的故事板动画设置。
用于淡化用户控件IN的故事板,工作正常,但显然我需要在用户控件中单击关闭按钮时触发淡出OUT动画。
这里是我添加到用户控件本身的代码,当单击关闭按钮时触发该代码。问题是当你点击用户控件上的任何地方时它会被触发,而不仅仅是关闭按钮。
public sealed partial class Page02 : UserControl {
public delegate void CloseButtonTappedHandler(object sender, TappedRoutedEventArgs e);
public event CloseButtonTappedHandler CloseButtonTapped;
public Page02() {
this.InitializeComponent();
this.imgCloseButton.Tapped += new TappedEventHandler(this.imgCloseButton_Tapped);
}
private void imgCloseButton_Tapped(object sender, TappedRoutedEventArgs e) {
if (CloseButtonTapped != null) {
CloseButtonTapped(sender, e);
}
}
}
主页面代码如下所示:
public sealed partial class MainPage : Page {
public MainPage() {
InitializeComponent();
this.AddHandler(UIElement.TappedEvent, new TappedEventHandler(Page02_CloseButtonTapped), true);
}
private void textBlock1_Tapped(object sender, TappedRoutedEventArgs e) {
MenuBar01.Visibility = Visibility.Visible;
HideUserControl1.Begin();
ShowUserControl2.Begin();
}
private void Page02_CloseButtonTapped(object sender, TappedRoutedEventArgs e) {
HideUserControl2.Begin();
}
}
答案 0 :(得分:1)
该行:
this.AddHandler(UIElement.TappedEvent, new TappedEventHandler(Page02_CloseButtonTapped), true);
将MainPage的tapped事件与Page02_CloseButtonTapped方法相关联。因此,任何点击事件都会触发该方法。
我假设您打算将其附加到Page02控件上的CloseButtonTapped事件中吗?