none
Панель в WPF RRS feed

  • Вопрос

  • Начал изучать WPF и сразу вопрос... Не нашел панели как в WinForm. Есть разные, но у них привязка элементов только по краям. Есть Canvasб чем то похож, но как я понял это для web.
    6 апреля 2011 г. 11:38

Ответы

  • А в прочем есть и другие варианты:

    Залить грид обычной заливкой нужного цвета, а в грид поместить либо Image отображающего нужную картинку, либо другой элемент с ImageBrush (лучше использовать Image).

    В программировании всегда есть несколько решений одной задачи ;)

    • Помечено в качестве ответа Siompc 7 апреля 2011 г. 8:25
    7 апреля 2011 г. 7:26
    Отвечающий

Все ответы

  • И можно ли поставить заливку цветом и фоновое изображение одновременно?
    6 апреля 2011 г. 11:41
  • Найдите книгу "Windows Presentation Fundation для профессионалов" Мэтью Мак-Донольда. Хоть и называется "для профессионалов" эта книга самое то для новичков в WPF. Если будете пытаться разобраться самостоятельно, то вопросов будет очень много и ждать ответы на них придется долго...

    На заданный вопрос все же отвечу. Самая продвинутая панель в WPF это Grid. Есть еще несколько более специализированных, под конкретные нужны. Canvas это панель имитирующая поведение компоновки из WindowsForms (к web она отношения не имеет), но ее применяют крайне редко. Вообще задание фиксированного расположения, а так же фиксированных ширины и высоты элементов считается дурным тоном в WPF (если только на это нет 100% причины).

    Например Button. Вы можете указать значение Margin, например 5 и тогда кнопка на форме размером 200 на 200 будет иметь размер 190х190, при условии , что ее свойства HorizontalAlignment и VerticalAlignment установлены в "Stretch", но если вы установите эти свойства. например, в Left и Top, то кнопка примет размер в соответствии со своим содержимым и займет левое верхнее положены с отступом по 5 от левого и верхнего краев. По началу это может показаться не удобным, но потом вы поймете что компоновка в WPF это своего рода искусство

    Обо всем этом написано в книге, которую я вам посоветовал.

    6 апреля 2011 г. 12:37
    Отвечающий
  • Читаю, про Grid это понятно, просто мне сейчас нужно поставить и картинку фоном и цвет одновременно. Картинка как рапка, а в центре должен быть соответствующий цвет. Подскажи как это сделать.
    6 апреля 2011 г. 15:47
  • Используй ImageBrush для закраски.
    7 апреля 2011 г. 4:38
    Модератор
  • Нет...

    <Grid.Background>
      <ImageBrush ImageSource="/FS%20wpf%20Client;component/Image/Background/BA_Fon01.png" />
    </Grid.Background>

    Вот он ставит изображение. В центре оно прозрачное! Вот эту прозрачность надо заполнить цветом. При попытке внести еще одну строку в  <Grid.Background> пишет что нельзя использовать более одного раза.

    7 апреля 2011 г. 7:03
  • Ни кто не мешает поместить еще одну Grid сзади этого и дать нужную заливку. Так как WPF поддерживает абсолютную прозрачность, то сквозь прозрачность изображения будет видно все остальное. Положение элементов относительно оси z регулируется прикрепленным свойством Panel.Zindex

    <Grid Panel.Zindex="-1">

    7 апреля 2011 г. 7:21
    Отвечающий
  • А в прочем есть и другие варианты:

    Залить грид обычной заливкой нужного цвета, а в грид поместить либо Image отображающего нужную картинку, либо другой элемент с ImageBrush (лучше использовать Image).

    В программировании всегда есть несколько решений одной задачи ;)

    • Помечено в качестве ответа Siompc 7 апреля 2011 г. 8:25
    7 апреля 2011 г. 7:26
    Отвечающий
  • Понятно :) Немножко громоздко получается. Спасибо!
    7 апреля 2011 г. 8:25