我没有测试过,但我很确定如果您使用键盘箭头调整行/列的大小(通过将焦点放在网格分割器上),AresAvatar当前接受的答案将不起作用.这是您应该在应用程序中预期的罕见但可能的情况.
当电网分离器被移动(或者通过拖放或使用键盘箭头),它改变了Width/ Height的依赖性属性ColumnDefinitions/ RowDefinitions网格的.您可以在此属性更改上轻松注册处理程序:
var heightDescriptor = DependencyPropertyDescriptor.FromProperty(RowDefinition.HeightProperty, typeof(ItemsControl));
heightDescriptor.AddValueChanged(myGrid.RowDefinitions[0], HeightChanged);
Run Code Online (Sandbox Code Playgroud)
(例如,此片段将跟踪网格第一行中的大小更改).
然后,您可以处理在每种情况下都适用的处理程序中的resize.
private void HeightChanged(object sender, EventArgs e)
{
// TODO: handle row resize
}
Run Code Online (Sandbox Code Playgroud)
通常,建议不要依赖用户输入操作(鼠标拖动,键盘输入......)来处理逻辑或可视动作/事件,因为几乎总有几种方法可以使用不同的输入执行相同的操作(鼠标,键盘,触摸屏,易用工具......).