2
在他的博客文章的一個聲明的IsInDesignMode物業在WPF應用洛朗比尼翁展示了下面的代碼片段作爲檢測desingtime模式爲WPF用vb.net
private static bool? _isInDesignMode;
/// <summary>
/// Gets a value indicating whether the control is in design mode (running in Blend
/// or Visual Studio).
/// </summary>
public static bool IsInDesignModeStatic
{
get
{
if (!_isInDesignMode.HasValue)
{
#if SILVERLIGHT
_isInDesignMode = DesignerProperties.IsInDesignTool;
#else
var prop = DesignerProperties.IsInDesignModeProperty;
_isInDesignMode
= (bool)DependencyPropertyDescriptor
.FromProperty(prop, typeof(FrameworkElement))
.Metadata.DefaultValue;
#endif
}
return _isInDesignMode.Value;
}
}
正如我碰巧工作的一種手段在VB我開始與Telerik的在線代碼轉換器轉換這一點,並結束了以下內容:
Private Shared _isInDesignMode As System.Nullable(Of Boolean)
''' <summary>
''' Gets a value indicating whether the control is in design mode (running in Blend
''' or Visual Studio).
''' </summary>
Public Shared ReadOnly Property IsInDesignModeStatic() As Boolean
Get
If Not _isInDesignMode.HasValue Then
#If SILVERLIGHT Then
_isInDesignMode = DesignerProperties.IsInDesignTool
#Else
Dim prop = DesignerProperties.IsInDesignModeProperty
#End If
_isInDesignMode = CBool(DependencyPropertyDescriptor.FromProperty(prop, GetType(FrameworkElement)).Metadata.DefaultValue)
End If
Return _isInDesignMode.Value
End Get
End Property
但是,如果一個人在選項嚴格上(這是我在默認情況下做到這一點無法編譯指出存在system.windows.Dependency之間的差異屬性和system.ComponentModel.DependencyProperty等等。
大多數的錯誤,代碼轉換器扔了我通常可以解決到底,但這個(可能因爲整個WPF的事情是很新的給我)的引起了我的問題。
任何人都可以解釋錯誤的根本原因(這樣我可以積極地理解它),並可能提供校正VB轉換。
謝謝