WPF如何使UserControl继承Button?

15

我创建了一个包含几个椭圆和标签的UserControl。我将其成功添加到另一个窗体中,看起来很漂亮。

然后我开始添加一些事件处理程序,发现我创造的控件没有公开Click事件。哎呀。很容易解决,对吧?只需返回我制作的UserControl的代码后台,并让它继承Button。

不幸的是,这样做会导致"Partial declarations of MyControl must not specify different base classes"消息。这让我很惊讶,因为我没有声明任何其他的基类。搜索涉及的部分未返回任何结果。

有没有办法解决这个问题?如果没有,最简单的解决方法是什么?我的目标只是在UserControl上获得一个Click事件。

1个回答

18

是的,你已经声明了其他基类 :) 只要相信编译器就好了 :)

当你在XAML写<UserControl ...></UserControl>时,你正在创建UserControl的子类。如果你想创建Button的子类,请使用 <Button ...></Button> ,然后在代码后台中添加“:Button”。

但是我强烈鼓励你不要创建Button的子类,这对于你的任务而言有点过头了。你可以使用MouseLeftButtonUp事件来代替Click事件。


2
MouseLeftButtonUp事件依赖于鼠标始终被点击。当用户按下空格键时,会触发Click事件,但不会触发MouseLeftButtonUp事件(因为空格键不是左键)。 - Marian Spanik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接