【发布时间】:2012-10-10 04:31:37
【问题描述】:
我在UserControl 中有一个Button:
<UserControl.Resources>
<ControlTemplate x:Key="ButtonTemplate" TargetType="{x:Type Button}">
<ContentPresenter />
</ControlTemplate>
</UserControl.Resources>
<Button Template="{StaticResource ButtonTemplate}" Click="Button_Click" />
但是,如果我指定 Template,则此按钮不会触发 Click 事件。
为什么?我该如何解决这个问题?
代码隐藏:
public event RoutedEventHandler Click;
private void Button_Click(object sender, RoutedEventArgs e)
{
if (Click != null)
Click(sender, e);
}
【问题讨论】:
-
你能告诉我代码隐藏文件中 Button_Click 的代码吗?
-
你是否设置了一个断点来查看它没有触发?还是只是返回 null?
-
我从未真正见过
Click被这样使用。你为什么不把你想要执行的任何代码放在你的Button_Click()方法中呢?当您说Click = BUtton_Click时,本质上您是在为该事件附加一个处理程序,您不需要再次调用Click。 msdn.microsoft.com/en-us/library/… -
@TejasSharma 你应该了解UserControl
-
我知道
UserControl是什么。这与路由事件有什么关系?你的链接是一个winforms UserControl。您的问题是关于 WPF。
标签: c# wpf events button click