Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / масштабирование фона после repeat / 2 сообщений из 2, страница 1 из 1
12.11.2011, 16:34
    #37523617
the_sid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
масштабирование фона после repeat
Здравствуйте!
Grid при загрузке присваивается фон в виде изображения с возможностью повторения изображения при растяжении:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<Style x:Key="gridBeforeVisual" TargetType="Grid">
      <Setter Property="Background">
        <Setter.Value>
          <ImageBrush ImageSource="/ElecQueueMap;component/Images/BackgroundLine.png" 
                      ViewportUnits="Absolute" 
                      Viewport="0,0,676,26" 
                      TileMode="Tile"/>
        </Setter.Value>
      </Setter>
    </Style>

Grid единственный компонент и он лежит на форме.
При загрузке в зависимости от параметра определяется сколько раз изображение должно отобразиться по вертикали(регулируется установкой высоты формы). После загрузки нужно чтобы сформированный при загрузке фон перестал при растягивании формы повторяться, а стал растягиваться.Пока не могу догнать как это можно реализовать...
...
Рейтинг: 0 / 0
14.11.2011, 13:07
    #37525312
the_sid
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
масштабирование фона после repeat
решил проблему пока достаточно кривовато:
после формирования изображения сохраняю его в файл:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Rect rect = new Rect(mainGrid.RenderSize);
      RenderTargetBitmap rtb = new RenderTargetBitmap((int)rect.Right,
        (int)rect.Bottom, 96d, 96d, System.Windows.Media.PixelFormats.Default);
      rtb.Render(mainGrid);
      BitmapEncoder pngEncoder = new PngBitmapEncoder();
      pngEncoder.Frames.Add(BitmapFrame.Create(rtb));
      System.IO.MemoryStream ms = new System.IO.MemoryStream();
      pngEncoder.Save(ms);
      ms.Close();
      System.IO.File.WriteAllBytes(Directory.GetCurrentDirectory() + @"\BackgroundAll.png", ms.ToArray());

а затем уже отображаю его с помощью другого стиля:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<Style x:Key="gridAfterVisual" TargetType="Grid">
      <Setter Property="Background">
        <Setter.Value>
          <ImageBrush ImageSource="/ElecQueueMap;component/Images/BackgroundAll.png"  
                      Stretch="Fill"
                      TileMode="None"/>
        </Setter.Value>
      </Setter>
    </Style>
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / масштабирование фона после repeat / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]