Frage

Ich teste derzeit mit Silverlight 2.0 Beta 2, und mein Ziel ist es, ein Ressourcenelement einmal zu definieren und es dann oft in meiner Rendering wiederverwenden. Dieses einfache Beispiel definiert ein Rechteck (MyRect) als Ressource und dann versuche ich es zweimal wiederverwendet werden - was mit dem Fehler fehlschlägt:

Attribut {Static MyRect} Wert liegt außerhalb des Bereichs. [Line: 9 Position: 83]

BTW, diese Probe funktioniert gut in 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>

Alle Gedanken auf, was los ist hier.

Danke,

- Ed

War es hilfreich?

Lösung

Ich habe begegnet auch das gleiche Problem, wenn die Komponenten wieder zu verwenden, definiert als statische Ressourcen zu versuchen. Die Abhilfe, die ich gefunden habe, ist nicht die Kontrollen als Ressourcen zu erklären, aber die Definition Stile Einstellung alle Eigenschaften, die Sie brauchen, und eine neue Steuerung mit diesem Stil jedes Mal Instanziierung Sie benötigen.

EDIT: Der außerhalb der Reichweite Ausnahme, Sie werden immer geschieht, wenn Sie ein Steuerelement zu einem Container zugewiesen werden, die bereits in einem anderen Behälter befindet. Es kommt auch in vielen anderen Szenarien (wie ein Stil auf ein Objekt anwenden, die bereits eine hat), aber ich glaube, dass dies der Fall ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top