Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XAML C#隐藏网格行_C#_Wpf_Xaml_Grid Layout - Fatal编程技术网

XAML C#隐藏网格行

XAML C#隐藏网格行,c#,wpf,xaml,grid-layout,C#,Wpf,Xaml,Grid Layout,我有一个网格,试图隐藏一行,其中包含一个文本框,使用c#作为我的代码隐藏我的最终目标是找到一种方法,在隐藏行时在文本框中设置文本。如果文本框的大小小于字体大小,我可能会遇到wpf不允许在文本框中设置文本的问题。这就是我到目前为止所做的: XAML: 据我所知,这应该是可行的。但是,我收到一个关于“RowDefinitions(1)”的错误。错误内容为:“非可开票成员'Grid.RowDefinitions'不能像方法一样使用。”有什么想法吗 提前谢谢 在C#中,索引运算符是[],而不是paren

我有一个网格,试图隐藏一行,其中包含一个文本框,使用c#作为我的代码隐藏我的最终目标是找到一种方法,在隐藏行时在文本框中设置文本。如果文本框的大小小于字体大小,我可能会遇到wpf不允许在文本框中设置文本的问题。这就是我到目前为止所做的:

XAML:

据我所知,这应该是可行的。但是,我收到一个关于“RowDefinitions(1)”的错误。错误内容为:“非可开票成员'Grid.RowDefinitions'不能像方法一样使用。”有什么想法吗

提前谢谢

在C#中,索引运算符是[],而不是parens。Parens是方法调用

AddressBar.RowDefinitions[1].Height = new GridLength(0);
此外,索引从零开始。1是第二项,而不是第一项。不知道你是否知道,但是帕伦夫妇看起来像VB

这很重要,因为AddressBar只有一行,根本没有行定义;一个有列,另一个有行。但这很容易解决

如果您只想隐藏整个网格,这是一个快照:

AddressBar.Visibility = Visibility.Collapsed;
但您可能希望外部网格中的第一行具有Height=“Auto”,因此它将与其内容一起折叠


您不会遇到文本框的大小调整问题(WPF喜欢隐藏东西),但在任何情况下,在XAML中将行高设置为“自动”,并在您希望文本框消失时将其可见性设置为“折叠”,这对WPF都更有意义。使用Height=“Auto”,行将根据其内容调整自身大小。如果内容折叠,则没有行

哦,天哪,我怎么没听懂!不幸的是,我使用括号得到了一个越界错误。我应该可以这样写:AddressBar.Height=newGridLength(0);但在那个场景中,我收到了错误:无法将类型System.Window.GridLength隐式转换为'double'。@user5890660哦,对了,AddressBar根本没有行定义。另一个网格有行定义,AddressBar只有列定义。@user5890660高度不是GridLength值,只有一个双精度值。将普通的旧零赋值给它很好——或者更好的做法是,将Visibility.Collapsed赋值给它的Visibility属性。因此,目标是将包含列的整个AddressBar行进行折叠。AddressBar已分配给第1行。@刚刚折叠的user5890660应该会这样做——请参阅最新更新。
AddressBar.RowDefinitions[1].Height = new GridLength(0);
AddressBar.Visibility = Visibility.Collapsed;