Как определить размер ячейки сетки? - PullRequest
2 голосов
/ 16 апреля 2010

У меня есть пользовательский элемент управления, который я поместил в ячейку сетки. У меня есть некоторые внутренние вычисления, которые мне нужно выполнить на основе высоты и ширины пользовательского элемента управления. Тем не менее, я хочу изменить его размер в зависимости от размера ячейки.

Итак, мой главный вопрос ... как программно определить высоту и ширину данной ячейки?

Ответы [ 2 ]

2 голосов
/ 16 апреля 2010

Может быть проще определить высоту и ширину вашего пользовательского элемента управления, а не ячейку DataGrid.

Ваш элемент управления должен иметь доступ (через элемент FrameWork) к свойствам ActualHeight и ActualWidth. Эти свойства будут обновляться при изменении размера.

Кроме того, событие SizedChanged будет запускаться на вашем элементе управления каждый раз при изменении высоты и ширины.

Я настоятельно рекомендую размещать эту логику высоты и ширины внутри вашего элемента управления. Вы не хотите ограничиваться размещением своего пользовательского элемента управления внутри DataGrids.

private void UserControl_SizeChanged(object sender, System.Windows.SizeChangedEventArgs e)
{
    HeightBox.Text = this.ActualHeight.ToString();
}
1 голос
/ 18 апреля 2010

Размер ячейки сетки можно получить с помощью RowDefinitions и ColumnDefinitions:

MyGrid.RowDefinitions[1].ActualHeight
MyGrid.ColumnDefinitions[1].ActualWidth

но это должна быть довольно редкая ситуация, тогда вы должны прибегнуть к такому подходу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...