我有一个标签序列,我希望能够分成两个区域或重新组合成一个标签序列。应用程序将以一个标签序列
开始
允许用户拆分为第二个面板
重新组合成一个标签控件。
在这个阶段,我应该在第一张图像上显示相同的内容。但是,相反,ContentControl没有Collaspe,并且空间留在主网格中。还有一个GridSplitter分配两个区域(图像2中的白色条)。这似乎像预期的那样崩溃。是否有一些技巧可以让ContentControl崩溃?
这是XAML。这是一个布尔属性BottomTabDisplayed,它指示底部区域是否有任何控件:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ContentControl x:Name="ControlContainerTopTab" Grid.Row="0">
<TabControl SelectedIndex="{Binding SelectedIndex}"
>
<TabControl.ItemContainerStyle>
...
</TabControl.ItemContainerStyle>
</TabControl>
</ContentControl>
<GridSplitter x:Name="GridSplitterTabControls"
Grid.Row="1"
Height="5"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Visibility="{Binding BottomTabDisplayed,
Converter={StaticResource VisiblityToBoolConverter}}" />
<ContentControl Grid.Row="2" Visibility="{Binding BottomTabDisplayed, Converter={StaticResource VisiblityToBoolConverter}}">
<TabControl SelectedIndex="{Binding SelectedBottomIndex}"
Visibility="{Binding BottomTabDisplayed,
Converter={StaticResource VisiblityToBoolConverter}}"
>
<TabControl.ItemContainerStyle>
...
</TabControl.ItemContainerStyle>
</TabControl>
</ContentControl>
</Grid>
编辑1: 而且,这是转换器
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool isVisible = (bool)value;
return (isVisible ? Visibility.Visible : Visibility.Collapsed);
}
我刚注意到一些有趣的事情,如果GridSplitter没有改变,它会按预期工作。如果我移动GridSplitter,那么我得到空的空间。
编辑2:
移动GridSplitter时,Snoop会发生变化
答案 0 :(得分:2)
如果您查看VisiblityToBoolConverter的代码,您很可能会看到它返回Hidden而不是Collapsed