2012-06-24 20 views
2

我有以下控件:如何添加刪除家長控制動態

<UserControl > 

    <!--<ScrollViewer >--> 
     <Viewbox > 
      <Canvas/> 
     </Viewbox> 
    <!--</ScrollViewer>--> 

</UserControl> 

我要動態添加和刪除ScrollViewer作爲我ViewBox父(例如,當我點擊一個Button):

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

我該怎麼辦?

回答

2

假設你UserControl名爲userControl

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 }; 
    } 
} 

爲什麼設置Contentnull,你可能不知道?因爲WPF不會讓你有一個元素一次成爲兩個元素的子元素,並且如果你試圖這樣做,它會立即拋出一個異常(例如通過說userControl.Content = scrollViewer.Content;)。

+0

Thanks.This工作 – NidhinSPradeep