WPF 资源xxx具有不兼容的类型


=_=这其实是一个低级错误。。。可是最后还是我同事帮我发现的,很是惭愧,决定写一篇随笔用于记录。。。

引用的地方是这样写的:

 请注意他这边是Template="***";

那么你资源文件中正确的写法应该是:

    
    "TextBoxTemplate1" TargetType="{x:Type TextBox}">
        "Bd" 
                    BorderBrush="{TemplateBinding BorderBrush}" 
                    BorderThickness="{TemplateBinding BorderThickness}"  
                    Background="{TemplateBinding Background}" 
                    CornerRadius="5">
            "PART_ContentHost"/>
        
        
            "IsEnabled" Value="False">
                "Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
                "Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
            
            "IsMouseOver" Value="True">
                "BorderBrush" TargetName="Bd" Value="#FF4176D3"/>
                "BorderThickness" TargetName="Bd" Value="1"/>
                "Foreground" Value="#FF4176D3"/>
            

        
    

如果你把这个控件模板包在style里面就是这样写:

就会报错。。。原因很简单你的样式文件是个style,而你引用的地方是个Template,层级关系不一样了。。。所以报错