Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用my interface在GUI中导致WPF依赖属性崩溃_Wpf_Vb.net_Properties_Interface_Dependencies - Fatal编程技术网

使用my interface在GUI中导致WPF依赖属性崩溃

使用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

我的用户控件工作正常。今天,我向usercontrol添加了一个简单的界面。现在我可以在设计模式(XAML)下加载它,但在新的Window1.XAML中使用UserControl时,它会崩溃。有什么想法吗

“对与指定绑定约束匹配的“OUTPUT\uuuuwpf01.ucUpDownBox”类型调用构造函数时引发异常。

''' <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)
was
newpropertymetadata(0)
。它必须是您所说的类型的默认值。