问题标签 [gridsplitter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
838 浏览

.net - 在 Silverlight 和 WPF 的 Xaml 文件中使用 GridSplitter

我有一个 Xaml 文件,该文件用于可以为 Silverlight 和 WPF 构建的项目中。我想使用 GridSplitter 控件。但是,此控件位于 Silverlight 和桌面 WPF 上的不同 Xaml 命名空间中。

在 WPF 中,命名空间是:http://schemas.microsoft.com/winfx/2006/xaml/presentation 在 Silverlight 上,它是:http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk

因此,如果 xaml 代码为<GridSplitter/>,它将在 WPF 上运行,但不适用于 Silverlight,如果代码为<sdk:GridSplitter/>,它将在 Silverlight 上运行,但不适用于 WPF。

有没有办法编写它以使其在两个平台上都可以使用?

0 投票
2 回答
8517 浏览

wpf - 为什么我的 GridSplitter 根本不起作用?

我正在将 WinForms 应用程序迁移到 WPF。到目前为止,一切都进展顺利,除了我尝试使用 GridSplitter 时,我永远无法在运行时调整任何东西的大小。

为了确保它不仅仅是我的代码,我尝试从 LearnWPF.com 编译GridSplitter 示例,但它似乎也不起作用。当我将鼠标悬停在不会发生的拆分器上时,我希望看到标准的调整大小光标,并且据我所知,窗口中也没有拆分器的其他视觉表示。

我在这里想念什么?

0 投票
2 回答
6637 浏览

silverlight - GridSplitter 无法调整内容大小的问题

首先,我是 XAML 的新手,所以如果我做了一些愚蠢的事情,请原谅我。

我已将我的页面精简为以下示例 XAML(可在 XamlPad 中查看):

我想要发生的是让水平网格拆分器调整顶部面板的大小,移动底部网格(我想保持在 25 高度)和向下滚动查看器控件。

我已经尝试将水平网格拆分器放入它自己的行中,这会将内容向下移动,但它会缩小顶部网格的内容,这不是我想要的。

关于我做错了什么的任何建议?跟身高比例有关系吗?

0 投票
1 回答
2054 浏览

wpf - 如何防止网格拆分器在窗口范围之外调整列的大小?

我有如下所示的 XAML(例如)。如果您将网格拆分器拖到最左边,并继续拖动鼠标,右侧的列将在窗口范围之外增大 - 显然不是我想要的。

问题是我无法在右侧列上设置硬 MaxWidth,因为用户可以调整窗口大小,从而增加该列的可用空间。到目前为止,我认为我需要将右侧列的 MaxWidth 绑定到窗口的客户区减去左侧的 MinWidth 加上拆分器列的宽度。但如果可能的话,我想避免这种情况。想法?

0 投票
1 回答
1494 浏览

silverlight - 带有数据分页器和网格分割器的 SL4 数据网格

我有一个包含两行和一个 GridSplitter 的网格。在第一行中,我有一个 StackPanel,其中包含 DataPager 和 DataGrid。在第二行中,我将扩展器控件垂直底部对齐并向上扩展方向。DataGrid 将占据两行的所有空间(垂直拉伸)的想法,但是当单击 Expander 标题时,它将向上扩展并且 DataGrid 将自动收缩。

但这并没有发生。当我单击扩展器时,它确实会扩展,但页面大小会增加而不是 DataGrid(Row 0) 会向上收缩。有谁知道我怎么能做到这一点?我的代码如下。我尝试将 ScrollViewers 置于 DataGrid 级别、StackPanel 级别以及 Grid 级别,但没有成功。

0 投票
1 回答
826 浏览

silverlight - Silverlight 4 中的 DataGrid 和 GridSplitter

我有一个网格,其中两行与 gridsplitter 分开。在第一行中,我使用 datapager 显示数据网格,并且它的垂直对齐设置为拉伸。在第二行中,我在 Expander 控件中将 DataForm 显示为 Child。

我想要的是在没有扩展器(DataForm Visibility)时由 DataGrid 占用所有空间(垂直),但很快用户按下 Expander 以查看 DataForm,它向上打开并且 DataGrid 被缩小以便可以显示 DataForm .

目前,当我单击 Expander 时,它会展开并显示 dataForm,但数据网格大小没有改变。即使我不能用 GridSplitter 让它变小。它只上升到页面大小。

有什么想法有什么问题吗?或者是因为我无法减少,因为数据分页器想要显示特定的行数(15)。

0 投票
4 回答
3587 浏览

wpf - WPF 网格分割器

我在使用 WPF GridSplitter 时遇到了奇怪的行为。

我将适当的 Horizo​​ntalAlignment 属性设置为拉伸,当我调整它们的大小时,GridSplitter 会跳来跳去,有时会回到原来的位置,或者只是在拖动它们时跳来跳去.....

有没有其他人看到或知道可能导致这种情况的原因?

谢谢

这是 XAML

0 投票
2 回答
9176 浏览

wpf - Gridsplitter 忽略列的最小宽度

我想要一个简单的 3 列网格,列可调整大小,MinWidth 为 80。

代码如下所示:

但它并没有按照我想要和预期的方式工作。当分离器被推到左边时,一切正常。当第二个分离器被推到右边时,一切正常。但是如果第一个拆分器被推到右侧,它会将第三列和第二个拆分器推出网格(或使其宽度=0)。

我为 gridsplitters 使用了单独的列,就像在 msdn 示例中所做的那样:

当我在某处阅读时,我还将对齐设置为中心,右对齐可能是一个问题,并尝试了不同的 ResizeBehaviors。

有谁知道,如何解决这个问题,以便 3 列始终可见,宽度至少为 80 像素?

谢谢你的帮助

0 投票
1 回答
3682 浏览

wpf - 带有按钮的 GridSplitter 用于固定类似行为

我希望以某种方式扩展 GridSplitter 以添加一个按钮,当单击该按钮时,该按钮会将控件展开或折叠到拆分器的指定侧之一。

我找到了适用于 Silverlight 4 的解决方案,但我需要它才能适用于 .NET 3.5 中的标准 WPF,这意味着 GridSplitter 没有实现 Shemesh 解决方案中使用的 Visual State Manager 内容。除了它不适用于 .NET 3.5 中的 WPF 之外,我认为 Shemesh 的解决方案可能正是我正在寻找的平滑动画过渡并在从折叠状态展开时记住最后展开的大小。

任何人都有在常规 WPF 中完成此操作的任何示例吗?

0 投票
2 回答
5750 浏览

wpf - 使用自动高度/宽度时,拖动 GridSplitter 会导致单元格增长

我正在使用 GridSplitter 来调整网格中单元格的大小,但是它的行为不是我所期望的,我找不到解决方案。它是一个三行网格,第一行的行定义设置为 Auto 并包含一些元素。第二行有一些数据,并有一个行定义 * 来填充剩余空间。最后一行是需要调整大小的状态栏,因此其中有一个网格拆分器,行定义高度为 Auto 和 MinHeight 为 30。

问题是当您将 GridSplitter 一直拖到顶部时,它会使单元格溢出。我希望它一旦到达顶部就停止。可以通过从最后一行删除 Height=Auto 来实现所需的行为,但这会使底部单元格扩展到与中间行相等的高度。

这是一个 XAML Pad 示例。

当您拖动到顶部时,您会注意到底部的文本消失了。

我尝试了各种方法,例如将网格拆分器放在它自己的单元格中,以及将高度绑定到另一个对象 ActualHeight 等,但没有一个真的能很好地工作。

我知道这不是解释得最好的问题,但任何想法都会非常感激。

编辑: 我已经用自己的行制作了 GridSplitter,如下所示,但正如我之前提到的,问题仍然存在。我在这里也设置了 ResizeBehavior 和 ResizeDirection。

一个有效的例子是删除最后一行 Height="Auto" 并将其更改为 * 像这样

然而,这使得最后一行的大小等于它之前的行,而不是请求的单元格大小。