C# 如何基于其他控件创建自定义控件

C# 如何基于其他控件创建自定义控件,c#,xaml,uwp,win-universal-app,C#,Xaml,Uwp,Win Universal App,我想制作一个基于TextBox的自定义控件,但当我设置它的样式时,它还没有进入应用程序模板 我编写了一个自定义控件Foo public class Foobar : TextBox { public Foobar() { DefaultStyleKey = typeof(Foobar); } protected override void OnApplyTemplate() { //breakpoint have not enter

我想制作一个基于TextBox的自定义控件,但当我设置它的样式时,它还没有进入应用程序模板

我编写了一个自定义控件
Foo

public class Foobar : TextBox
{
    public Foobar()
    {
        DefaultStyleKey = typeof(Foobar);
    }

    protected override void OnApplyTemplate()
    { //breakpoint have not enter
        base.OnApplyTemplate();
    }
}
我用Generic.xaml编写样式

<Style x:Key="Foobar" TargetType="TextBox"></Style>
<Style TargetType="view:Foobar">

</Style>
但这两种代码都不起作用

我将其写入mainPage.xaml,但它没有显示

我试着在参考资料中写它

<Application.Resources>
    <ResourceDictionary>
        <viewModel:ViewModel x:Key="ViewModel"></viewModel:ViewModel>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Themes/Generic.xaml"></ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>


但它不起作用。

我不想复制RichEditBox中的模板。你提到RichEditBox,但你的模板和样式目标文本框。。。那么是哪一个呢?@PedroLamas我想说的是RichEditBox。您是否尝试将您期望的模板添加到您的通用样式中(即……此处的控件模板……此外,您不应该引用通用样式)。xaml@JamesCroft我试着设置,但没有设置,但都没有。
<Application.Resources>
    <ResourceDictionary>
        <viewModel:ViewModel x:Key="ViewModel"></viewModel:ViewModel>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Themes/Generic.xaml"></ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>