【问题标题】:Enable gridsplitter when both expander IsChecked两个扩展器 IsChecked 时启用 gridsplitter
【发布时间】:2019-02-19 21:22:58
【问题描述】:

我有一个三行网格。

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

我想完成 gridsplitter 的功能。我希望只有在展开器Visibility ="visible" 展开时才能看到gridsplitter。

如何将此行为设置为 gridsplitter?

【问题讨论】:

    标签: c# wpf xaml mvvm


    【解决方案1】:

    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>
    

    希望有帮助

    【讨论】:

    • 如果我的 第二个扩展器另一个 XAML 文件中,我需要更改什么。我怎样才能连接它们? @gopichandar
    • @TomThomas 您需要在另一个视图上有DependencyProperty,该视图将用于绑定值。
    • 我已经这样做了,但是有一些问题。我在这个问题中问过它。 stackoverflow.com/questions/54764648/…可以看看吗!?
    猜你喜欢
    • 2012-03-08
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    相关资源
    最近更新 更多