Silverlight 布局 - 一次一个面板

本文关键字:一个 布局 Silverlight 一次 | 更新日期: 2023-09-27 18:30:42

在 silverlight 中,让一堆容器充满控件并能够一次只显示其中一个容器的最佳方法是什么,这也是 MVVM 模式友好的。我记得Winforms中有一些东西可以做这样的事情,但我想知道silverlight或工具包中是否有任何东西?

    -------------------------------------------
   |                     View                 |
   |
   |    Containers:
   | 
   |     -----   -----   -----   -----
   |     |   |   |   |   |   |   |   |
   |     |   |   |   |   |   |   |   |
   |     -----   -----   -----   -----
   |    
   |               ^
   |               |
   |            currently
   |             active              
   |------------------------------------------|

Silverlight 布局 - 一次一个面板

我相信有很多方法可以实现你想要的。

样式化的 TabControl 是一种方式。

这将是另一个:

<Grid>
    <Grid Visibility="{Binding Panel1Visibility}">
        ... contents
    </Grid>
    <Grid Visibility="{Binding Panel2Visibility}">
        ... contents            
    </Grid>
    ... etc
</Grid>

你会有很多重叠的元素,这里是网格,但它们可以是任何东西。将可见性绑定到各个可见性属性。或者有一个VisibilityProperty和一个转换器,例如

<Grid>
    <Grid Visibility="{Binding VisiblePanelNo, 
          Converter={StaticResource PanelVisibilityConverter}, ConverterParameter=1}">
    </Grid>
    <Grid Visibility="{Binding VisiblePanelNo, 
          Converter={StaticResource PanelVisibilityConverter}, ConverterParameter=2}">
    </Grid>
    ... etc
</Grid>