2013-09-11 90 views
2

名稱屬性考慮這個WPF3D XAML代碼片段,記住,聲明的對象不繼承FrameworkElement軸承:設置和檢索X:爲XAML對象

<Visual3D x:Name="SomeName" /> 

如何,在代碼中,將一個去約檢索指定的值爲x:Name的字符串?是的,它在構建時被聲明爲代碼隱藏訪問的符號,但是如果您將具有非FrameworkElement根目錄的邏輯樹轉換爲其他格式,則沒有定義FrameworkElement.NameProperty.GetValue()

+0

您使用MVVM嗎? – Dom

+0

否;這是一個關於WPF的XAML實現的行爲和特性的問題,低於開發模式的水平。 –

+0

正在遍歷視覺樹以通過鍵入可能性來獲取此元素? – GameAlchemist

回答

1

似乎沒有直接的方法來做到這一點。

1

您可以創建一個繼承自Visual 3D類的類,並在該類上添加RuntimeNameProperty屬性以及將用於保存名稱的屬性。

+0

,這是引發這個問題的討論點之一。但是班級可能會被「封閉」,否則我將無法定義附加屬性。 'x:Name'的優點是它的規範性質;每個XAML元素都可以使用'x:Name'。 –

+0

我不認爲有任何其他方式直接檢索x:Name屬性(這就是FrameworkElement如何填充Name屬性的方式) –