Hoe u ouderlijk toezicht dynamisch kunt verwijderen

Ik heb de volgende bedieningselementen:



   <!---->
       
           
       
   <!---->


Ik wil dynamisch de ScrollViewer toevoegen en verwijderen als mijn ViewBox bovenliggend item (bijvoorbeeld wanneer ik op een knop klik):

private void Button_Click(object sender, RoutedEventArgs e)
{
   //Here add or remove ScrollViewer
}

Hoe kan ik doen?

2

1 antwoord

Ervan uitgaande dat uw UserControl de naam userControl heeft:

private void Button_Click(object sender, RoutedEventArgs e)
{
    var scrollViewer = userControl.Content as ScrollViewer;
    if (scrollViewer != null)
    {
        var content = scrollViewer.Content;
        scrollViewer.Content = null;
        userControl.Content = content;
    }
    else
    {
        var content = userControl.Content;
        userControl.Content = null;
        userControl.Content = new ScrollViewer { Content = content };
    }
}

Waarom stel je de Inhoud in op null , vraag je je misschien af? Omdat wpf je niet één element het kind van twee elementen tegelijk zal laten zijn, en meteen een uitzondering werpt als je dat probeert (bijvoorbeeld door gewoon userControl.Content = scrollViewer.Content; te zeggen ).

2
toegevoegd
Bedankt. Dit werkte
toegevoegd de auteur NidhinSPradeep, de bron