对于初学者,当想到要改变一个控件的模板时都是这样一套写下来的 [xml] <TextBox Grid.Row="0" Width="300" Height="26" FontFamily="YouYuan" FontWeight="Bold" FontSize="16" AllowDrop="False"> <TextBox.Template> <ControlTemplate> </ControlTemplate> </TextBox.Template> </TextBox> [/xml] 但会发现,这样写,那么功能都不在了,比如我在<ControlTemplate>加入一个border,运行时发现根本就没法输入。当遇到这样的情况时,应该用Blen打开,对象->编辑模板,此时你会发现,它原来的模板出现了,这就是一个完整的模板了,会发现里面用了很多x:name,这时你会发现TextBox有这么一行代码 [xml] <ScrollViewer x:Name="PART_ContentHost" Margin="10,0,0,0"></ScrollViewer> [/xml] 就是这个x:name决定了是否能够输入,所以,在自己写的模板里就要把这个name加入才有最基本的功能。 我也是新手,当我要写一个控件的模板时,我喜欢用blend打开,看原来有哪些属性,希望初学WPF的同学们多用Blend看看控件的元模板