wpf - 如何切换 WPF Grid 列的可见性

标签 wpf binding grid gridsplitter togglebutton

我无法在我正在开发的 WPF 应用程序中使用它。基本上,我所追求的是类似于 MMC 中的任务 Pane :

  • 该应用程序在显示的主要部分具有三列。我需要在右侧有一个可调整大小的列。我认为这意味着将 Grid 与 GridSplitter 一起使用,但任何可行的方法都可以。
  • 我希望能够在应用程序关闭时保存右侧列的宽度,并在应用程序打开时加载它,但这应该是初始大小:用户应该能够调整它的大小。
  • 当我调整窗口大小时,我希望左侧和右侧的列保持相同的大小,并且中间列的大小随着窗口宽度调整。
  • 左侧和右侧的列需要具有最小宽度。当我调整右侧列的大小时,我希望中心列变小,但不是左侧列。
  • 我还希望能够使用列外部的切换按钮来切换右侧列的可见性,当它返回可见性时,我希望它与以前的宽度相同。

  • 我试图在 XAML 和绑定(bind)中做尽可能多的事情。

    我可以在上面放奶油、冰淇淋和巧克力片吗? :-)

    最佳答案

    当我阅读您的要求时,而不是考虑 Grid ,我想到了一个DockPanel .

    <DockPanel>
        <Grid Name="right"
            DockPanel.Dock="Right" MinWidth="100" />
        <Grid Name="Left"
            DockPanel.Dock="Left" MinWidth="100" />
        <Grid Name="middle" />
    </DockPanel>
    

    如果你想办法调整 right ,然后 middle将更改为 right被调整大小。如果你调整窗口大小,只有 middle会改变。存储和设置 Widthright取决于你,但应该不难。

    至于允许用户调整大小right ,这会有点棘手,但我找到了this article这应该会有所帮助。 This other article可能会有所帮助。

    对于right的可见性,你可以设置它的VisibilityCollapsed隐藏它并通过将其设置为 Visible 来恢复它.

    注意:里面的面板不一定是Grid s,但你会想要使用某种 Panel对于每个。无论您在当前Grid 中拥有什么列应该可以正常工作。

    关于wpf - 如何切换 WPF Grid 列的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1218332/

    相关文章:

    css - 更改位置网格

    c# - 哪个 WPF 控件可以将网格作为子控件

    javascript - 如何在视频播放时解除点击绑定(bind)

    ruby - 如何在 proc 上下文中评估 "local_variables"?在 ruby

    c# - 如何使用来自单独的 xaml 文件的样式

    wpf - 当焦点来自后面的代码时,如何选择 WPF TextBox 中的所有文本?

    data-binding - zkoss MVVM 更改为模型强制网格重新加载

    c# - 棋盘游戏棋子移动算法

    c# - 使用 Telerik 组件正确部署应用程序

    wpf - MvvmCross - Wpf CustomPresenter