如何判断网格单元的大小?

时间:2010-04-16 14:26:51

标签: silverlight grid

我有一个自定义控件,我放在一个网格的单元格中。我需要根据自定义控件的高度和宽度运行一些内部计算。但是,我希望它根据单元格的大小调整大小。

所以,我的主要问题是......如何以编程方式确定给定单元格的高度和宽度?

2 个答案:

答案 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

但这应该是非常罕见的情况,那么你必须诉诸这种方法