问题标签 [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.
c# - 在 WPF 中折叠网格行
我创建了一个自定义 WPF 元素,该元素从该元素扩展而来RowDefinition
,当Collapsed
元素的属性设置为True
.
它通过在样式中使用转换器和数据触发器来将行的高度设置为 0。它基于此SO Answer。
在下面的示例中,当网格拆分器位于窗口的一半以上时,这非常有效。但是,当它不到一半时,行仍然折叠,但第一行没有展开。取而代之的是,在过去的行中只有一个白色间隙。这可以在下图中看到。
类似地,如果在任何折叠的行上设置了MinHeight
或MaxHeight
,则它根本不再折叠该行。我试图通过在数据触发器中为这些属性添加设置器来解决这个问题,但它没有解决它。
MinHeight
我的问题是可以做些什么不同的事情,以便行的大小或是否设置/无关紧要MaxHeight
,它只是能够折叠行?
MCVE
主窗口.xaml.cs
主窗口.xaml
c# - 将 WPF Grid 绑定到模型
我有一个 MVVM 应用程序,它有一个 WPF 网格,其中包含其他嵌入式 WPF 网格,同时,它们每个都包含一些字段(WPF TextBlocks)。
非常简化的示例 - 查看:
这些 TextBlock 中的每一个都绑定到视图模型中定义的字符串属性。
查看模型(它实现了 INotifyPropertyChanged):
然后我有一个模型,我的意思是,一个具有一些公共属性的类,一旦从设备获取数据,就会由一个进程填充。此类包含与视图模型中定义的属性完全相同的属性。
型号:
稍后从视图模型中,我从此类(模型)中提取数据,并将这些属性的值分配给视图模型中的匹配属性。最后,由于视图绑定到这些属性,因此视图正确更新为如下示例的值。
查看模型方法提取接收到的数据:
问题是我必须在视图模型和模型中定义两次属性。所以我想避免这种情况,我想将 Textblocks 直接绑定到模型中的属性,而不是在视图模型中定义属性以避免冗余代码。或者例如,是否有任何简单的方法可以将我的模型(MyModel)绑定到外部主网格,然后将文本框绑定到视图模型中的属性(在数据网格中绑定 itemsource 时类似)?
wpf - WPF TreeView share size of grid column in single level
How to share size of Grid column within single level instead of multiple levels?
This kind of works, but shares the size between the whole tree, which isn't what I wanted
c# - 有没有办法检查一个网格单元,而不是数据网格单元,是否包含一个对象
我正在将文本框分配给网格中的单元格,但想在分配之前确认单元格中是否已经存在对象。是否可以在特定列中查询如果为空则返回 null 的行?
我可以创建一个代表网格的列表列表,我在添加和删除对象时对其进行修改,但这听起来效率低下。
我编写的示例代码:
本质上,每次用户单击TextBlock
添加到日期列(由用户预先选择)的按钮时都会调用此代码块,并且希望是该列中的下一个可用行。我已经尝试过GetRow()
,但是 UIElement 搜索的这个似乎不起作用,因为所有这些TextBlock
都是用相同的名称创建的。
我可能已经完全错误地处理了这一切,因此任何关于我需要阅读的内容的线索将不胜感激。
基本上最终结果应该是这样的:
c# - 无法在 C# 中向 GRID 面板添加不同的控件
我对 XAML 和 WPF 完全陌生,在添加按钮后,我无法将其他类型的控件(如 TextBox 或 Label)添加到网格中。您能否解释一下我在哪里犯了错误(我想这应该是新手的一些简单错误)。
我使用 Win Forms 在 C# 中创建了一个应用程序,并决定使用我以前从未使用过的 WPF 创建相同的应用程序,以便我可以学习新的东西。我不擅长 C# FYI。我在 Visual Studio 中使用 WPF 应用程序启动了新项目,为网格创建了 2 列和 4 行,并开始向其中添加一些控件。不幸的是,我无法在同一个网格上制作带有按钮和其他类型控件的工作应用程序。看起来网格只允许我添加一种类型的控件,这对我来说毫无意义,我找不到任何关于这种限制的信息。包含简单的 XAML 代码。
预期的结果将是一个带有如下控件的窗口:
我收到的错误:
CS0029 无法将类型“System.Windows.Controls.TextBox”隐式转换为“System.Windows.Controls.Button”AjStock_WPF_3 D:\OneDrive\Microsoft Visual Studio\source\repos\AjStock_WPF_3\AjStock_WPF_3\obj\Debug\CSVToSQL.g。 cs 104 主动
c# - 带圆角的网格
有没有更好的选择来制作圆角网格?这可能会导致任何问题吗?
(示例:需要的是 10 的圆角半径和 #FF292A2E 的背景颜色)
c# - 如何动态创建和修改新的 Grid 行元素?
我刚刚开始一个新的 WPF 应用程序。我有一个网格,想要动态创建行(例如按下按钮),然后在该行内创建 TextView/ProgressBar。
我已经搜索了如何以编程方式创建网格。但是在每个解决方案中,我都无法访问里面的内容,它变得毫无用处。
我无法访问以前创建的元素。
回答后:
要获取创建的 TextBlock :var text = (TextBlock)FindName("Test"+i.ToString());
wpf - 如何在绑定表达式中获取 Grid.Column 值
我需要通过 Grid.Column 值设置背景属性。我的想法是像这样简单的 DataTrigger
MyElement 是一个通用的 wpf 控件,例如:
但这不起作用,Visual Studio 说:Cann't resolve property Grid
我可以使用 C#Grid.GetColumn(MyElement)
作为解决方法。但我想知道,这里有没有唯一的 xaml 解决方案?
c# - 网格中的网格不显示 C# WPF 中的滚动条
我在另一个 Grid 中有一个 Grid 并将第二个 Grid 添加到 ScrollViewer 但看不到它的滚动条。我添加的 ScrollViewer 网格的名称为InfoGrid。我不明白为什么 ScrollViewer 不起作用。你有什么替代方法可以建议我吗?我的所有窗口的 xaml 代码:
c# - 如何使我的所有(或大部分)元素在 C# WPF 中使用响应式布局?
所以我使用“*”键将总宽度划分为不同的响应区域。但显然我不能到处使用网格,有些元素不支持它等等。所以我的问题是如何保持这些元素的灵活性?我偶然发现这个问题的最新情况是当我尝试使用带有内部 GridView 的 ListView 时。据我了解,GridView 不支持使用宽度百分比声明 GridView 列,仅使用固定的 Width 值。什么是解决方法?一定要这样吗?我真的很想让我的 UI 尽可能灵活。现在,固定宽度让我感到困惑,因为我正在为 50" 2160p 屏幕设计 UI。但是,我正在设计的屏幕要小得多(13" 1080p),因此元素被按比例缩小,我无法真正使用它。这是我正在寻找的示例或理想场景的示例。
当前情景
我在寻找什么
或者