使用my interface在GUI中导致WPF依赖属性崩溃
我的用户控件工作正常。今天,我向usercontrol添加了一个简单的界面。现在我可以在设计模式(XAML)下加载它,但在新的Window1.XAML中使用UserControl时,它会崩溃。有什么想法吗 “对与指定绑定约束匹配的“OUTPUT\uuuuwpf01.ucUpDownBox”类型调用构造函数时引发异常。使用my interface在GUI中导致WPF依赖属性崩溃,wpf,vb.net,properties,interface,dependencies,Wpf,Vb.net,Properties,Interface,Dependencies,我的用户控件工作正常。今天,我向usercontrol添加了一个简单的界面。现在我可以在设计模式(XAML)下加载它,但在新的Window1.XAML中使用UserControl时,它会崩溃。有什么想法吗 “对与指定绑定约束匹配的“OUTPUT\uuuuwpf01.ucUpDownBox”类型调用构造函数时引发异常。 ''' <summary> ''' BorderColor Dependency Property ''' </summary> Public Shared
''' <summary>
''' BorderColor Dependency Property
''' </summary>
Public Shared ReadOnly BorderColorProperty As DependencyProperty = _
DependencyProperty.Register("BorderColor", GetType(System.Windows.Media.Color), GetType(ucUpDownBox), _
New FrameworkPropertyMetadata(System.Windows.Media.Color.FromArgb(255, 50, 50, 50), _
FrameworkPropertyMetadataOptions.None, _
AddressOf OnBorderColorChanged))
''' <summary>
''' Gets or sets the BorderColor property. This dependency property
''' indicates ....
''' </summary>
Public Property BorderColor() As System.Windows.Media.Color Implements IButton.Color '<--- IButton.Color is the interface with Media.Color
Get
Return CType(GetValue(BorderColorProperty), System.Windows.Media.Color)
End Get
Set(ByVal value As System.Windows.Media.Color)
SetValue(BorderColorProperty, value)
End Set
End Property
''' <summary>
''' Handles changes to the BorderColor property.
''' </summary>
Private Overloads Shared Sub OnBorderColorChanged(ByVal d As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
Dim target As ucUpDownBox = CType(d, ucUpDownBox)
Dim oldBorderColor As System.Windows.Media.Color = CType(e.OldValue, System.Windows.Media.Color)
Dim newBorderColor As System.Windows.Media.Color = target.BorderColor
target.OnBorderColorChanged(oldBorderColor, newBorderColor)
End Sub
''' <summary>
''' Provides derived classes an opportunity to handle changes to the BorderColor property.
''' </summary>
Protected Overridable Overloads Sub OnBorderColorChanged(ByVal oldBorderColor As System.Windows.Media.Color, ByVal newBorderColor As System.Windows.Media.Color)
Dim uc As ucUpDownBox = CType(Me, ucUpDownBox)
uc.Col1A.Color = AddLuminance(BorderColor, 60)
uc.Col1B.Color = AddLuminance(BorderColor, -60)
End Sub
“”
''边框颜色依赖属性
'''
公共共享只读BorderColorProperty作为DependencyProperty=_
DependencyProperty.Register(“BorderColor”、GetType(System.Windows.Media.Color)、GetType(ucUpDownBox)_
新的FrameworkPropertyMetadata(System.Windows.Media.Color.FromArgb(255,50,50,50)_
FrameworkPropertyMetadataOptions。无_
OnBorderColorChanged)的地址
'''
''获取或设置BorderColor属性。此依赖项属性
''表示。。。。
'''
公共属性BorderColor()作为System.Windows.Media.Color实现IButton.Color'“对类型…调用与指定绑定约束匹配的构造函数时引发异常”
此错误通常意味着解析xaml代码时出现运行时错误。这当然告诉不了你多少。所以你需要得到更多的信息。基本上,您看到的异常只是一个一般性错误,我们想看看是什么导致了这个问题
要获取真正的异常(或我们称之为“内部异常”):
-激活捕获Visual Studio中引发的所有异常。
打开调试>异常,并激活公共语言运行时异常的“抛出”列中的复选框
现在再次触发碰撞,看看你得到了什么。理想情况下,我们希望看到堆栈跟踪。
如果您查看跟踪,您可能会看到调用了代码的某些部分。看看这段代码,看看是否可以从中找出问题
如果您仍然被卡住,那么发布一些代码,以及您问题中的堆栈跟踪,我们将看到我们可以从那里做些什么
有时“输出”窗口也会提供一些信息。当默认值的类型与依赖属性的类型不同时,通常会出现这种情况
例如,用0代替0.0表示双色,或用颜色代替画笔
也可能是由于在构造函数中使用未赋值(null)属性造成的。Hi Liz。谢谢你。现在,我的应用程序中有101个bug需要解决。那要花很多时间。听起来很糟糕?我喜欢解决他们心中的这些问题。谢谢你的提示。我希望这样,我会找到一个解决办法。这解决了我的问题,非常感谢newpropertymetadata(string.Empty)
wasnewpropertymetadata(0)
。它必须是您所说的类型的默认值。