我想创建可调整大小的窗口,它最初会自动调整为其内容。如果窗口的大小达到某些限制,自动调整大小将被禁用,并且不断增长的控件将被剪切或显示为滚动条。当用户调整窗口大小时,自动调整大小也必须关闭。
真正的任务是使用文本控件创建方便的可调整大小的对话框窗口。当它包含的文本行不多且不少时,最初自动调整对话框大小是合理的。文本量增加,对话框变大。当然它必须有一些尺寸限制。
PS我认为定义布局是一项非常频繁的任务,其中在布局的测量传递期间大小调整的指导作用有条件地从子级切换到父级并返回。
分享您的想法或现有的解决方案。可能是我错过了一些东西。谢谢你。
更新 1
让我解释一下算法:
1)显示窗口(假设所有数据/内容都已设置)。
2) 它的大小被调整,就好像窗口的属性是:
最大高度 = ...
最大宽度 = ...
SizeToContent = "宽度和高度"
3) 用户尝试调整窗口大小。他可以做到。内部控件会相应地改变它们的大小。
此行为等效于属性集:
MaxWidth = "{x:Ststic Double.PositiveInfinity}"
MaxHeight = "{x:Ststic Double.PositiveInfinity}"
SizeToContent = "手动"
ResizeMode = "CanResizeWithGrip"