none
Изменение расположения контрола в приложении WPF RRS feed

  • Вопрос

  • В приложении WPF (C#) в табконтроле на вкладке разместил DataGrid. Контрол разместился в центра вкладки, и не удается сместить его вверх или вниз, он возвращается на прежнее место. Подскажите, пожалуйста, что нужно сделать, чтобы можно было контрол переместить на нужное мне место на вкладке.

    Alex

    28 ноября 2013 г. 10:15

Ответы

Все ответы

  • Смотря где он должен находиться. Можно попробовать например HorizontalAlignment="Left" VerticalAlignment="Top" - он окажется слева и сверху.
    28 ноября 2013 г. 10:30
  • Если нужно более точно выставить контрол в пикселах то разместите в TabItem Canvas и устанавливаете свойства Canvas.Left  Canvas.Top
    28 ноября 2013 г. 11:07
  • Если вы DataGrid перетащили в окно из панели инструментов, а не написали в XAML руками, то для начала найдите в свойствах DataGrid значение Margin и выставьте его по нулям. Затем уже играйте с параметрами VerticalAlignment и HorizontalAlignment

    Yes, yes - am back!

    28 ноября 2013 г. 14:32
  • Свойство Margin и так по нулям. Я думал, что в конструкторе я могу перемещать элементы куда угодно, как и в Windows Forms. В моем случае - просто в конструкторе переместить DataGrid1 в нужную мне позицию (например, вверх). При перемещении его вверх мышкой при отпускании кнопки мыши он опять возвращается в исходное положение.

    Тестовый проект находится по ссылке http://yadi.sk/d/udGO7BZrDWrMo


    Alex

    29 ноября 2013 г. 12:29
  • Посмотрел ваш проект. Какой DataGrid Вас интересует? Их там 2. Первый внутри вкладки TabControla, но у него явно установлены ширина и высота. Второй вообще не принадлежит TabControl-у, а размещен над ним.
    29 ноября 2013 г. 13:08
  • В догонку. В TabItem разместить элемент можно только в центре. Хотите получить произвольное расположение - поместите в TabItem Canvas, а уж в него DataGrid.

    P.S. Собственно, Вам об этом уже писали Выше :)

    • Изменено kosuke904 29 ноября 2013 г. 13:14
    29 ноября 2013 г. 13:12
  • В TabItem разместить элемент можно только в центре. 

    Это с чего вдруг?

    Yes, yes - am back!

    29 ноября 2013 г. 13:22
  • Извините, погорячился :)
    29 ноября 2013 г. 13:26
  • Хотел сказать "с установленными по умолчанию Alingment"
    29 ноября 2013 г. 13:29
  • При перетаскивании руками Margin стоят в 0, а вот оба Alignment = Stretch. Поэтому он и оказывается в середине. Думаю, сначала выставить VerticalAlignment и HorizontalAlignment в Left или Right, а уж потом "поиграть" с Margin.
    29 ноября 2013 г. 13:36
  • Но таким способом больше одного элемента в TabItem не добавить (Content будет уже занят). Так что, все равно, нужен дополнительный контейнер.
    29 ноября 2013 г. 13:52