WPF 自定义控件:XAML 中定义的控件的事件?

WPF Custom Control : Events for the controls defined in XAML?

我正在制作一个派生自 ComboBox 的 CustomControl :

public class CBT : ComboBox
{
    static CBT()
    {
        DefaultStyleKeyProperty.OverrideMetadata(typeof(CBT),
         new FrameworkPropertyMetadata(typeof(CBT)));
    }
}

我正在编辑 ComboBox 的默认 Style(..从 Blend 复制)。

所以如果我要在 ComboBox 的 Popup 中添加一个 Button,并且想要注册它的 Click,我应该遵循的最佳方法是什么?

我试过了:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:local="clr-namespace:ui_test"
                xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2"
                x:Class="ui_test.CBT">

并更改为:

public partial class CBT : ComboBox {}

但是抛出错误 Partial declarations of 'ui_test.CBT' must not specify different base classes

请帮帮我好吗? :) 提前致谢:)

编辑:我不知道如何处理按钮的事件:(

您需要一种样式,您不能将 class 设置为那样的资源字典
查看此主题类似问题 here or read Mosers guide
来自文章:

<Style TargetType="{x:Type yourcontrol}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type yourcontrol}">
                ... 
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

这就是我最终得到的结果: 命令对于我必须完成的任务来说太过分了

    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        popup = this.GetTemplateChild("PART_Popup") as Popup;

    }

只需传入您要获取的控件的名称:)