предотвратите wpf listview столбец авторазмеров двойного щелчка заголовка

У меня есть listview, где я обработал заголовки столбцов по шаблону, и listview объекты являются шаблонными также. Однако у меня есть другой tempalates для некоторых строк в представлении сетки. Когда пользователь дважды щелкает по заголовку столбца представления списка, куда можно перетащить ширину столбца, заголовок столбца будет автоматический изменять размер, означая, что это увеличит свой размер. Это вызывает проблему для меня, потому что моя ширина заголовка столбца больше не находится в синхронизации с шириной столбцов в моих шаблонах строки.

Существует ли быстрый и простой способ предотвратить это поведение двойного щелчка на заголовке столбца?

1
задан 21 April 2010 в 19:36
поделиться

1 ответ

Да, настроить обработчик двойного щелчка на самом ListView . Затем в обработчике используйте такой код:

private void ListView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    if (TryFindParent<GridViewColumnHeader>(e.OriginalSource as DependencyObject) != null)
        e.Handled = true;
}

Где TryFindParent определяется как:

public static T TryFindParent<T>(DependencyObject current) where T : class
{
    DependencyObject parent = VisualTreeHelper.GetParent(current);

    if (parent == null) return null;

    if (parent is T) return parent as T;
    else return TryFindParent<T>(parent);
}
2
ответ дан 3 September 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: