我開發Silverlight中的地圖應用程序。我有一個Polygon類型,它包含一個多邊形的座標以及一個包含加載到應用程序中的Brush資源名稱的字符串。我將這個對象直接綁定到繪製多邊形的模板上。此模板具有System.Windows.Media.Brush類型的填充索引。的Silverlight的MarkupExtension
我的目標是讓XAML的解析器來完成資源的查找,考慮到我只有刷機的名稱,而不是資源本身。
在Silverlight我想實現類似於佩德羅·桑帕約在WPF展示在這篇博客文章的內容:http://www.e-pedro.com/2009/06/using-data-binding-with-static-resources-in-wpf/。他創建了一個繼承StaticResourceExtension類型的BindableStaticResource。然後他可以這樣做:
<Polygon Fill="{BindableStaticResource {Binding NameOfFillResource}}" />
非常優雅!但是,由於沒有MarkupExtension類型爲子類型,因此它似乎不是Silverlight中的選項。我對Silverlight相當陌生,並不能真正考慮實現這一點的一種好的,可重用的方式。
謝謝! HaraldV
僅供參考,標記在Silverlight 5中將支持擴展。 – 2011-01-27 13:00:19