我有一个自定义控件,我放在一个网格的单元格中。我需要根据自定义控件的高度和宽度运行一些内部计算。但是,我希望它根据单元格的大小调整大小。
所以,我的主要问题是......如何以编程方式确定给定单元格的高度和宽度?
答案 0 :(得分:2)
可能更容易找出自定义控件的高度和宽度,而不是DataGrid的单元格。
您的控件应该(通过FrameWork Element)访问属性ActualHeight和ActualWidth。这些属性将在大小更改时更新。
此外,每次高度和宽度更改时,都会在控件上触发SizedChanged事件。
我强烈建议将此高度和宽度逻辑放在控件内。您不希望仅限于将自定义控件放在DataGrids中。
private void UserControl_SizeChanged(object sender, System.Windows.SizeChangedEventArgs e)
{
HeightBox.Text = this.ActualHeight.ToString();
}
答案 1 :(得分:1)
您可以通过RowDefinitions和ColumnDefinitions获取网格单元的大小:
MyGrid.RowDefinitions[1].ActualHeight
MyGrid.ColumnDefinitions[1].ActualWidth
但这应该是非常罕见的情况,那么你必须诉诸这种方法