我目前正在测试与Silverlight2.0Beta2和我的目标是确定一个资源单元一次,然后重新使用多次在我的渲染。这个简单的例子定了一个矩形(myRect)作为一种资源,然后我试图重复使用这两次-哪个失败的错误:

属性{示myRect}价值超出范围。[线:9位置: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>

任何想法什么在这里。

谢谢,

--Ed

有帮助吗?

解决方案

在尝试重用定义为静态资源的组件时,我也遇到了同样的问题。我找到的解决方法不是将控件声明为资源,而是定义样式设置所需的所有属性,并在每次需要时使用该样式实例化新控件。

编辑:当您将控件分配给已在另一个容器内的容器时,会发生超出范围的异常。它也发生在许多其他场景中(例如将样式应用于已经有样式的对象),但我相信这是你的情况。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top