Nano Hash - криптовалюты, майнинг, программирование

Как изменить ширину столбца GridView после его инициализации?

Обновленная проблема:

В WPF я использую GridView (внутри ListView) для отображения списка пар Textbox-Slider. Каждая такая пара размещается ровно в одной ячейке одного столбца (используя DockPanel для каждой пары).

Ползунок имеет минимальную ширину, чтобы он не схлопывался, текстовое поле не сворачивалось, его размер динамически изменялся при получении ввода.

Проблема в том, что когда ширина текстового поля увеличивается, ширина столбца не изменяется эквивалентно. Это приводит к тому, что ползунок в соответствующем ряду визуально обрезается с правой стороны. В результате ручка ползунка исчезает в пустоте при перемещении вправо.

Итак, вопрос: как заставить ширину столбца сетки динамически изменяться, если содержимое превышает доступное пространство (которое было установлено во время инициализации)?

Процентные ползунки с исчезающими ручками

Просто игнорируйте метку между текстовым полем и ползунком (без нее поведение не изменится).


  • Если у вас сложный код, самое первое, что вы должны сделать, это выделить проблемную область и опубликовать автономный пример, демонстрирующий проблему. Возможно, вы даже решите проблему в процессе. 30.08.2012
  • Это не стандартное поведение. Это говорит о том, что ваши контейнеры (сетки, стековые панели, док-панели) настроены неправильно. Удалите этот фрагмент кода, чтобы мы могли изучить его. 30.08.2012
  • Трудно извлечь соответствующий фрагмент кода, так как он встроен в довольно сложную программу. 13.09.2012
  • Вы тестировали это на нескольких разных машинах? 14.09.2012
  • Нет, моя рабочая среда не настроена ни на одном другом компьютере, отличном от моего рабочего компьютера. 14.09.2012
  • Трудно извлечь соответствующий фрагмент кода. Тогда просто попробуйте воспроизвести его, просто воспроизведя эти три элемента управления на док-панели. Бремя работы должно лежать на спрашивающем, а не на отвечающем. 14.09.2012
  • Что произойдет, если вы используете Grid вместо DockPanel? 11.10.2012
  • @Х.Б. К сожалению ничего, проблема осталась. 07.11.2012
  • Пожалуйста, обратитесь по следующей ссылке stackoverflow.com/a/15744968/1333423 01.04.2013

Ответы:


1

один из способов сделать это - взять событие метки и добавить его в сетку (sizeChanged), а затем изменить размер сетки пропорционально размеру метки...

08.10.2012

2

Возможно, какой-то контейнер обрезает его через ClipToBounds или в зависимости от того, как реализованы ваши фоновые цвета, они могут накладываться на другой столбец.

30.08.2012
  • После извлечения кода в чистый новый проект я обнаружил, что это не вызвано ClipToBounds. Взгляните на обновленный пост. 02.10.2012

  • 3
    Size containerSize=new Size(100, 100);
    public Size CalculateSize(FrameworkElement visualBlock, Size containerSize)
    {
        visualBlock.Measure(containerSize);
        return visualBlock.DesiredSize;
    }
    

    Этот код получает размер элемента фреймворка для рендеринга внутри контейнера. После этого вы можете установить размер программно. Необходимо знать размер родителя для корректной работы.

    11.10.2012
  • Ну, чтобы измерить размер FrameworkElement, мне сначала нужно иметь доступ к этому элементу. Проблема в том, что элементы (а именно ползунки) вставляются в GridViewColumn. Так что мне нужно было бы получить к ним доступ оттуда - есть ли способ сделать это? 07.11.2012
  • попробуйте использовать примеры из stackoverflow.com/questions/636383/ wpf-способы-найти-элементы управления 09.11.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..