2008-09-19 26 views
0

我目前正在使用Silverlight 2.0 Beta 2進行測試,我的目標是定義資源元素一次,然後在我的渲染中多次重複使用它。這個簡單的例子定義了一個矩形(myRect)作爲資源,然後我嘗試重用它兩次 - 失敗並返回錯誤:在Silverlight 2.0中重新使用StaticResource

屬性{StaticResource myRect}值超出範圍。 [Line:9 Position:83]

順便說一下,這個示例在WPF中工作正常。

<UserControl x:Class="ReuseResourceTest.Page" 
    xmlns="http://schemas.microsoft.com/client/2007" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="200" Height="200"> 
    <Canvas x:Name="LayoutRoot" Background="Yellow"> 
     <Canvas.Resources> 
      <RectangleGeometry x:Key="myRect" Rect="25,50,25,50" /> 
     </Canvas.Resources> 
     <Path Stroke="Black" StrokeThickness="10" Data="{StaticResource myRect}" /> 
     <Path Stroke="White" StrokeThickness="4" Data="{StaticResource myRect}" /> 
    </Canvas> 
</UserControl> 

想到這裏有什麼想法。

感謝,

- 埃德

回答

2

試圖重用定義爲靜態資源組件時,我也遇到了同樣的問題。我找到的解決方法不是將控件聲明爲資源,而是定義樣式來設置所需的所有屬性,並在每次需要時使用該樣式實例化新控件。

編輯:當您將控件分配給已經位於另一個容器內的容器時,會出現超出範圍的異常。它也發生在許多其他情況下(例如將樣式應用於已有的樣式),但我相信這是您的情況。

相關問題