2010-09-19 15 views
0

Voici mon problème spécifique:Comment puis-je ajouter un élément à l'arbre visuel dans Silverlight

Xaml:

<local:ShrinkableContentControl x:Name="m_ShrinkableContentControl"> 
    <Border Background="SkyBlue"> 
     <Button Click="Button_Click_1" Content="Hello"/> 
    </Border> 
</local:ShrinkableContentControl> 

Code pour ShrinkableContentControl:

[ContentProperty("Shrinkable")] 
public class ShrinkableContentControl : FrameworkElement 
{ 
    protected override Size MeasureOverride(Size availableSize) 
    { 
     return base.MeasureOverride(availableSize); 
    } 

    protected override Size ArrangeOverride(Size finalSize) 
    { 
     this.Shrinkable.Arrange(new Rect(0, 0, 100, 100)); 
     return base.ArrangeOverride(finalSize); 
    } 

    public FrameworkElement Shrinkable { get; set; } 
} 

La question ici est, Shrinkable est Content, et n'est pas ajouté au visualtree, donc rien ne s'affiche.

Quelqu'un peut-il me dire s'il existe un moyen d'ajouter le Shrinkable en tant qu'enfant de ShrinkableContentControl dans le visualtree?

Merci, Henry

+0

Pour donner suite à la question. Je ne veux pas utiliser un panneau. Je veux forcer seulement un seul enfant. – ryhzhang

Répondre

2

Si vous voulez un seul enfant, il semble que vous devriez hériter de ContentControl:

Représente un contrôle avec un seul morceau de contenu de tout type.

Il suffit de définir la propriété Content