2011-06-15 96 views
0

我目前正在与一组成员一起开发一个程序,他们也不知道如何解决这个问题。我创建了一组专业用户控件“ImageButton”。我正在使用该程序的菜单部分。菜单本身是另一个用户控件。带ButtonBase的路由事件参数

他们目前使用ButtonBase.Click来访问按钮,但它不适用于我的新ImageButtons。

ButtonBase.Click导致一个名为“MainMenu_Click”的事件。

private void MainMenu_Click(object sender,RoutedEventArgs e) {__0} _menuButtonClicked =(Button)e.OriginalSource; this.ShowMainPage((MainMenuCommands)_menuButtonClicked.Tag); }

我已经尝试解析它们作为ImageButtons,但它没有奏效。所以我需要一个类似于ButtonBase.Click的解决方案,但对于我的ImageButton。

编辑: 有3个文件,我有工作: MainWindow.xaml(及其CS) MainMenu.xaml(及其CS) ImageButton.xaml(及其CS)

的MainMenu有几个ImageButtons就可以了。 MainMenu在MainWindow上使用。其中一个属性是ButtonBase.Click。但我需要为ImageButton设置而不是System.Windows.Controls.Button。

+0

不知道你的问题是什么。你的意思是“我如何在ImageButton上实现点击事件”? – 2011-06-15 17:09:11

+0

我的ImageButton已经有一个点击事件。问题是,由于解析问题,我无法获得上述功能。我需要能够为我的ImageButton设置一个ButtonBase.Click属性,该属性被解析为一个ImageButton类型。 – MeisterGao 2011-06-15 17:14:53

回答

0

你需要让你的ImageButton从ButtonBase(或Button)派生 - 那么你将得到所有的ButtonBase,比如Click事件。这样做很简单。我有一个RibbonButton,就像一个图像按钮,它从Button作为自定义控件派生而来。您在Generic.xaml中编写模板来设置外观,然后添加任何其他属性和代码。

+0

它已被设置的是ImageButton:在cs文件中的UserControl。我只是将用户控件更改为按钮? – MeisterGao 2011-06-15 17:28:34

+0

我应该注意到,我的老板想要它作为一个用户控件。 – MeisterGao 2011-06-15 17:42:43

+0

您需要将其更改为Button或基于ButtonBase的自定义控件。你不能在UserControl上使用ButtonBase.Click,因为ButtonBase.Click只是为ButtonBase定义的;它不是附属的财产。 – 2011-06-15 18:01:31