我想实现一个WPF UserControl,它显示3个“Image + Text”列表 (我的视图模型是一个动物园对象,按类别保存动物名单:哺乳动物,爬行动物和昆虫)
此控件的一个非常重要的功能是,当使用它的窗口/对话框的大小变小时,将通知控件,并且在特定大小下它将仅显示没有文本的图像(我不我不想使用滚动条。
此外,如果一个类别下的动物数量长于对照可以显示的数量,则再次 - >控件应该只使用图像并删除文本。
如何收听窗口大小的变化? 我如何知道用户控件变小或显示自己的空间较小?
感谢您的帮助, CL
答案 0 :(得分:0)
一个。 “如何收听窗口大小的变化?”
您可以将事件处理程序附加到UserControl的SizeChanged
事件。
private void UserControl_SizeChanged(object sender, SizeChangedEventArgs e)
{
var usrControlHeight = e.NewSize.Height;
var usrControlWidth = e.NewSize.Width;
//take action based on current UserControl size
}
湾“我怎么知道用户控件变得更小或显示的空间更小?”
我将此视为:当一个类别下的动物数量超过对照组显示时,您希望收到通知。您可以使用逻辑来计算在上述相同事件处理程序中显示列表中所有动物所需的总空间/高度。然后将计算结果与当前UserControl的高度进行比较,并相应地采取措施。