Pergunta

Atualmente, estou testando com o Silverlight 2.0 Beta 2, e meu objetivo é definir um elemento de recurso uma vez e depois reutilizá-lo muitas vezes em minha prestação. Este exemplo simples define um retângulo (MyRect) como um recurso e então eu tentar reutilizá-lo duas vezes - que falha com o erro:

Atributo {StaticResource MyRect} valor está fora do intervalo. [Line: 9 Posição: 83]

BTW, este exemplo funciona bem em 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>

Quaisquer pensamentos sobre o que está acontecendo aqui.

Obrigado,

- Ed

Foi útil?

Solução

Eu também encontrou o mesmo problema ao tentar reutilizar componentes definidos como recursos estáticos. A solução que eu encontrei não está declarando os controles como recursos, mas a definição de estilos de configuração todas as propriedades que você precisa, e instanciar um novo controle com esse estilo cada vez que você precisa.

EDIT: O fora do intervalo de exceção que você está recebendo acontece quando você atribui um controle para um recipiente que já está dentro de outro recipiente. Isso também acontece em muitos outros cenários (como a aplicação de um estilo para um objeto que já tem um), mas acredito que este é o seu caso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top