【问题标题】:Resizeable grid columns可调整大小的网格列
【发布时间】:2015-01-30 03:09:07
【问题描述】:

我有 4 个面板一列接一列。除了第三个,每个面板都是固定的,应该尽可能大。

我希望能够切换第一个、第二个和第四个面板的可见性。

我尝试使用网格并切换不同的列:

<Grid Grid.Row="1" Name="ResizablePanels">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="40" Name="gridColTools"/>
        <ColumnDefinition Width="100" Name="gridColStamps"/>
        <ColumnDefinition Width="*" Name="gridColCanvas"/>
        <ColumnDefinition Width="256" Name="gridColPropertiesAndLayers"/>
    </Grid.ColumnDefinitions>
    ...
<Grid>

但这只是隐藏了面板,并没有真正重新定位和调整第三个面板的大小。

我也尝试了一个包裹面板,但我无法让它工作,因为第三个面板的大小未知。

如何切换列的可见性并适当调整大小?

【问题讨论】:

    标签: c# wpf layout resize wpf-controls


    【解决方案1】:

    您需要将可隐藏列的宽度设为“自动”,然后在每个网格列中包含的控件上设置宽度(40、100、256)。

    现在您正在指定您的列将始终采用特定大小 - 如果您将它们设置为自动,第三列(宽度为 *)将在您隐藏它们时吸收它们提供的任何空间。

    正如@Blam 所指出的,您需要使用 Visibility.Collapsed 才能使其正常工作 - Hidden 不会在这里剪掉它,因为隐藏的控件仍然占用空间。

    【讨论】:

      【解决方案2】:

      必须是 30 个字符

      Visibility.Collapsed;

      【讨论】:

        猜你喜欢
        • 2012-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-24
        • 2017-02-26
        • 2012-07-03
        相关资源
        最近更新 更多