我正在尝试控制它将具有动态大小,我在增加控件的大小时首先测试,工作得很好,但是当我减少事件的大小时甚至没有被调用。 我正在使用以下事件来调用函数
ChatList.SizeChanged += ChatList_SizeChanged;
private void ChatList_SizeChanged (object sender, System.Windows.SizeChangedEventArgs e)
{
UpdateLayout ();
CalculateSpace (e.NewSize.Width);
}
CalculateSpace函数具有以下代码
private void CalculateSpace (double width)
{
var size = width / _List.Count;
foreach (var in personSelector _List)
personSelector.Value.Width = size;
}
}
当屏幕尺寸减小时,是否有任何理由不会调用该事件?
由于
答案 0 :(得分:0)
很难分析控制器布局和放置位置缺乏良好信息的情况。但是我希望发现控件总是希望其内容的大小不会少。因此,只要您膨胀其内容的宽度,您实际上就会设置其最小宽度。当可用空间变小时,控件的大小不会减小,因为它“需要”更多。
您是否考虑使用Grid
,其列定义为1 *宽度。当你添加一个新的“person”元素时,控件只是将另一个列定义添加到网格中,并将适当的Grid.Column属性值添加到新元素。
Grid将为您处理所有这些大小调整的内容。