开发者社区 问答 正文

提示类型初始化失败 有大佬知道是怎么回事吗

public class SizeAdjustChrome : Control {
    static SizeAdjustChrome() {
      FrameworkElement.DefaultStyleKeyProperty.OverrideMetadata(typeof(SizeAdjustChrome), new FrameworkPropertyMetadata(typeof(SizeAdjustChrome)));
    }



    public double GripCornerSize {
      get { return (double)GetValue(GripCornerSizeProperty); }
      set { SetValue(GripCornerSizeProperty, value); }
    }

    // Using a DependencyProperty as the backing store for GripCornerSize.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty GripCornerSizeProperty = DependencyProperty.Register("GripCornerSize", typeof(double), typeof(SizeAdjustChrome), new PropertyMetadata(7));
}
  <Style TargetType="{x:Type local:SizeAdjustChrome}">
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type local:SizeAdjustChrome}">
          <Grid>

            <Grid Opacity="0" Margin="-7">
              <!--左-->
              <local:SizeAdjustThumb Height="{TemplateBinding GripCornerSize}" Cursor="SizeWE" 
                                   VerticalAlignment="Center" HorizontalAlignment="Left"/>

Height="{TemplateBinding GripCornerSize}"

提示类型初始化失败 有大佬知道是怎么回事吗

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
游客mxpnxp6g3cq7o 2019-08-14 09:44:19 697 分享 版权
阿里云 AI 助理回答

根据您提供的代码片段和错误描述,问题似乎出现在XAML模板绑定时尝试使用GripCornerSize属性作为高度(Height)的值,但遇到了类型初始化失败的错误。这可能是由于以下几个原因造成的:

  1. 依赖属性注册问题:确保您的DependencyProperty注册没有问题。在您给出的代码中,GripCornerSizeProperty的注册看起来是正确的,所以这可能不是直接原因。

  2. XAML命名空间问题:在XAML文件中,确保正确引用了包含SizeAdjustChrome类的命名空间。例如,如果这个类位于某个特定的命名空间内,你需要在XAML头部声明它,如 <Window xmlns:local="clr-namespace:YourNamespace" ...>,然后在使用控件或绑定时前缀以local:

  3. TemplateBinding语法问题:在XAML中,如果您直接用TemplateBinding来绑定到一个依赖属性,并且遇到类型初始化失败的问题,这可能是因为数据上下文或者模板应用的环境未被正确设置。请确认GripCornerSize属性所在的控件已经被正确实例化并且其模板正在被应用。

  4. 类型转换问题:尽管可能性较小,但有时如果绑定目标期望的类型与提供值的类型不匹配,也可能导致类似错误。不过,在您的例子中,GripCornerSizedouble类型,而Height属性也是接受double类型的,所以这应该不是问题所在。

  5. 其他外部因素:有时候,这种错误可能是由项目配置、编译器错误或其他外部因素引起的。检查是否有任何最近的更改影响了项目的编译或运行环境。

解决建议: - 确认XAML中是否正确引用了自定义控件的命名空间。 - 检查SizeAdjustChrome控件实例化的地方,确保在模板应用之前该控件已被正确创建和配置。 - 查看编译输出窗口(Output Window)中的详细错误信息,通常这里会提供更多关于“类型初始化失败”具体原因的线索。 - 如果有对项目进行过更新或添加了新的库,请尝试清理解决方案(Clean Solution)并重新生成(Rebuild),有时候这能解决一些因编译缓存或状态不一致引起的问题。

如果以上步骤不能解决问题,建议提供更详细的错误信息或相关代码上下文,以便进行更深入的分析。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: