我遇到以下情况:
我有一个UserControl
CustomControl
,可以被视为第三方(我无法访问代码来更改此CustomControl
的内部条件)。此控件动态取决于用户的输入:复选框用于隐藏某些高级设置。 CustomControl
没有任何事件让我可以保留与显示高级属性相关的事件。
此控件托管在UserControl
,Host
中。 CustomControl
在Dock
内停靠(Host
=填充)。
Host
本身用于可停靠面板内,预计从左边缘延伸到右边缘。由于此要求,大多数其他控件使用Dock
= Fill for this。
问题是,隐藏的高级属性列表足够长,需要垂直滚动条,但不能隐藏高级属性。目前,由于Host
使用Fill停靠,停靠面板中根本不会显示任何滚动条,导致某些属性从屏幕上掉落并导致CustomControl
无法使用。
我知道如果我想在CustomControl
内使用Fill保持Host
停靠,那么我需要使用AutoScrollMinSize并使其与Host
的{{1}同步}}。
由于PreferredSize
可以被视为第三方,因此此链接(How can I detect when Control.PreferredSize changes?)中提出的解决方案对我来说不是一个选项。聆听CustomControl
事件似乎并没有捕捉到小熊控制的动态隐藏和揭示。