我在窗口中定义了一个TextBox,如下所示:
Description:
问题是,当用户键入TextBox时,它会向右扩展,因为只设置了MinWidth.我真正想要的是要包装到下一行的文本.如果我将列上的MinWidth更改为Width,我可以这样做.但是,如果我这样做,那么在调整Window大小时TextBox不再调整大小.
有没有办法可以兼顾两者?(即仅在Window调整大小时调整大小,否则换行)
你有这种行为的原因是因为你设置了Window的SizeToContent属性 - 它基本上授权Window根据其内容请求的大小调整自身大小.因此,当您输入更多内容时,文本框说我需要更多空间,窗口会顺从地增长.如果未设置SizeToContent属性,则文本框不会增长.
所以我会说丢失SizeToContent属性setter和使用比例网格大小.在这里,我说使第2列的宽度为第1列的宽度.Grid的HorizontalAlignment和VerticalAlignment的默认"Stretch"值应确保控件在窗口大小调整时正确调整大小.
Description:
如果你只是将SizeToContent属性setter添加回上面的代码片段...你会看到文本框最初随文本内容增长的一些奇怪的行为..但是如果你调整窗口大小一次......文本框将停止增长.奇怪......无法解释那种行为.
HTH