3

更新问题:

在 WPF 中,我使用 a GridView(在 a 内ListView)来显示对列表Textbox-Slider。每对这样的对都恰好排列在单列的一个单元格中(通过DockPanel对每对使用 a)。

Slider 具有最小宽度,因此它不会折叠,文本框不会折叠,它会在接收输入时动态调整大小。

问题是当文本框的宽度增加时,列宽并没有等效地改变。这会导致相应行中的滑块在右侧被视觉剪辑。结果,滑块的旋钮在移动到右端时消失在空隙中。

所以问题是:如果内容超过可用空间(在初始化时设置),我如何强制gridview的列宽动态调整大小?

带有消失旋钮的百分比滑块

只需忽略文本框和滑块之间的标签(没有它,行为不会改变)。

4

3 回答 3

2

一种方法是获取标签事件并将其添加到网格(sizeChanged),然后根据标签大小调整网格大小......

于 2012-10-08T12:08:18.920 回答
1
Size containerSize=new Size(100, 100);
public Size CalculateSize(FrameworkElement visualBlock, Size containerSize)
{
    visualBlock.Measure(containerSize);
    return visualBlock.DesiredSize;
}

此代码获取框架元素的大小以在容器内渲染。之后,您可以以编程方式设置大小。需要知道父母的大小才能正确工作。

于 2012-10-11T08:25:29.927 回答
1

某些容器可能会通过 剪辑它ClipToBounds,或者根据您的背景颜色的实现方式,它们可能会从另一列覆盖。

于 2012-08-30T19:00:02.567 回答