当两个扩展器都被选中时启用gridsplitter

时间:2019-02-18 09:58:32

标签: c# wpf xaml mvvm

我有一个三行网格。

第一行和最后一行由扩展器占用,第二行由gridsplitter占用。

我想完成GridSplitter的功能。我希望仅当两个扩展器都展开Visibility ="visible"时,网格拆分器才可见。

如何将这种行为设置为网格拆分器?

1 个答案:

答案 0 :(得分:0)

MultiDataTrigger

这是您的方案的示例。

<StackPanel>
    <Expander IsExpanded="True" x:Name="exp1">
        <TextBlock Text="In Expander 1" />
    </Expander>
    <Expander IsExpanded="True" x:Name="exp2">
       <TextBlock Text="In Expander 2" />   
    </Expander>    
    <GridSplitter >
        <GridSplitter.Style>
            <Style TargetType="GridSplitter">
                <Setter Property="Visibility" Value="Collapsed"/>
                <Style.Triggers>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding ElementName=exp1,  Path=IsExpanded}" Value="True" />
                            <Condition Binding="{Binding ElementName=exp2,  Path=IsExpanded}" Value="True" />
                        </MultiDataTrigger.Conditions>
                        <Setter Property="Visibility" Value="Visible" />

                    </MultiDataTrigger>
                </Style.Triggers>

            </Style>
        </TextBlock.Style>
    </GridSplitter>
</StackPanel>

希望有帮助