问题标签 [wpf-grid]

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 投票
0 回答
28 浏览

c# - 三行网格,一是可折叠的(DataGrid、GridSplitter、TextBox)。网格没有按照我的意愿调整大小

我的Grid布局有问题。我想要三行(第二行GridSplitter)的行为:

如果带有TextBoxis的行Collapsed,则DataGrid填充整个空间。
如果为 的行,则TextBox和共享空间。 如果设置在,则不展开。并填满他们的行。VisibleTextBoxDataGrid
TextTextBoxTextBoxHeight
TextBoxDataGrid

示例 xml:

问题1:当我更改HeightTextBox并设置它时CollapsedDataGrid不会填充空白空间。 我想扩展到整个区域。(1) 开始 (2) 问题
DataGrid

问题 2:
如果我不触摸TextBoxrowHeight并添加多行文本,TextBox则会展开Height. 如果之前更改HeightTextBox行,则不会出现问题。 (1) 开始 (2) 问题 (3) 目标

有什么建议么?

0 投票
1 回答
90 浏览

wpf - 动态添加的元素无法在动态调整的网格中正确显示

我有一个ItemsControl应该显示ImagesGrid.

ItemsControl如下所示:

由于我想将可变数量的元素加载到网格中,因此我无法在标记中定义行和列。

BindingsGridRowGridColumn在后面的代码中计算:

item是一个具有属性GridColumnGridRow的对象BitmapSource

在计算完所有这些对象并将数组设置为之后,ItemsSource我将计算行数和列数:

从我的屏幕截图中可以看出,所有项目都加载到 VisualTree 中,并且它们具有正确的ColumnRow值。网格也将正确显示。该BitmapSource属性似乎工作正常,因为可以Image在我的屏幕截图上看到一个(白色背景上的 35)。

唯一的问题是所有项目似乎都显示在左上角的“第一个”单元格中。也有可能忽略 Row和的值。Column在此处输入图像描述

我尝试使用此处的建议,但这不起作用。

0 投票
0 回答
280 浏览

c# - 将网格及其内容保存在文件中 - WPF、C#

我有一个包含 StackPanel 的多行和多列的网格列表。每个堆栈面板包含一个或多个图像对象,在某些情况下根本没有,还有一些边框。

我想将这些网格保存到一个文件中(某种保存功能),然后将其放回内存并再次显示。

最好的方法是什么?有没有办法以简单的方式执行此操作,或者我应该将每个重要数据添加到文件中,例如行数和列数、StackPanel 数以及它们拥有多少个 Image 对象以及每个图像及其在StackPanel 等等?

编辑:这些 Grid 对象完全在代码隐藏中创建和管理。我在整个项目中使用 MVVM 模式。(如果这些对信息很重要)

0 投票
1 回答
276 浏览

c# - WPF 网格白色条纹

我有一个Grid里面有很多按钮的。这些按钮应该是无缝连接的。在大多数情况下,这实际上是有效的,但有时网格的列/行之间会有一条白色条纹:

图像中有白色条纹

我正在通过后面的代码将按钮添加到网格中(对于非最小代码,我很抱歉,但我真的不知道这里可能有什么相关的):

WPF 非常简单,看起来像这样:

我已经尝试过Pixel Snapping,但没有任何区别。

0 投票
1 回答
107 浏览

wpf - 基于内容的带有 RowDefinitions 的网格

我正在尝试获得类似于可调整边距的图像。图像本身实际上是一条路径,位于 StackPanel 中,垂直拉伸。StackPanel 的宽度可以调整,我想保持图像的比例和路径大小与边距的比例。

现在,问题是,即使路径对象被绘制在网格中,第一行和第三行的高度始终为零,而不是根据第二行的高度进行设置。我知道发生这种情况是因为 Grid 位于 StackPanel 中,它忽略了自动高度设置,甚至不让 Grid 垂直拉伸(或水平拉伸,具体取决于方向)。如果我为网格设置一个固定的高度,它确实有效,但是在调整大小时会破坏图像的纵横比。我怎样才能让它工作?

这就是我所拥有的:

零高度行

这就是我要的:

假定的高度行

编辑:

我的问题似乎有些混乱。因此,希望澄清一下,这是调整 StackPanel 大小后所需的结果:

调整大小后的假设结果

如您所见,整个网格应该像实际图像一样调整大小。网格应保持其纵横比。这与网格内的路径无关。

0 投票
1 回答
471 浏览

.net - 网格渲染不正确的 WPF ScrollViewer

拿这个简单的代码:

Visual Studio 设计器正确显示所有内容: 在此处输入图像描述

然而,在运行时,结果如下: 在此处输入图像描述

注意第 nr 4 行如何不再在网格内?!它呈现在它之外。此外,如果您缩短窗口,垂直滚动条会变得可见,但它只会滚动红色区域。无法滚动查看第 4 行。

如果VerticalAlignment="Top"从 中删除Grid,则渲染似乎已修复,但滚动仍然无法正常工作。

谁能解释到底发生了什么?这是微软的错误吗?

我正在运行 Visual Studio 2017 社区版(完全更新),Win 10 版本 1803,其中包含 .NET 4.7.2。

(我认为它与.NET 4.7.2有关,因为直到现在我才注意到这个问题)

有一种解决方法,<RowDefinition Height="Auto" />为所有行指定 - ,但这不是必需的......

0 投票
2 回答
1154 浏览

c# - 完全删除 WPF 中的网格线

我在每列中有一个带有矩形的 WPF 网格。所有列的宽度相同 (1*),所有矩形都有黑色背景。在设计器模式下,矩形(网格列线)之间有细线很好,但我的问题是,这些线在运行时仍然可见:

例子

我的代码是:

任何帮助,将不胜感激!

0 投票
1 回答
195 浏览

wpf - 意外的自动网格列宽

下面的代码是我在项目中使用的一个大 wpf 窗口的一小段。它生成链接的 wpf 窗口。

我想知道为什么我的最后一个网格列这么宽。我期望最后一列的宽度取决于按钮的宽度,因为列宽设置为“自动”。如果我删除 StackPanel 的列跨度,列宽将是正确的,但复选框未与右侧对齐。

我希望你明白我的问题。我的目标是,最后一列尽可能小,复选框在右侧,其余的则保持不变。

因为这个片段是更大的 wpf 窗口的一部分,所以我无法删除任何网格行或列。

非常感谢您的帮助。

此致。

WPF 窗口

0 投票
2 回答
2234 浏览

wpf - 如何在 WPF 中折叠星形网格列?

通过设置Width为 使三列具有相同的宽度Auto

我想实现如果中间列折叠或隐藏,其他两个占用剩余空间并获得相等的宽度。

如果我只是因为 Width="*" 而将 Visibility 设置为 Collapsed 或 Hidden,则其他两列的宽度保持不变。

在此处输入图像描述

我通过以编程方式将第二列宽度设置为自动实现了所需的功能,但我正在寻找其他一些解决方案(最好是 xaml 方式之一)。

0 投票
1 回答
141 浏览

wpf - app.xaml 中的网格样式使内容不可见

我想在 app.xaml 中定义一个网格样式,包括背景颜色。但是,在此处设置颜色会使整个内容立即不可见。

在此处输入图像描述

执行应用程序时,会出现以下内容:

在此处输入图像描述

片刻后,按钮可见。如何防止这种情况发生,请记住,我希望网格具有全局背景颜色。