powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / масштабирование фона после repeat
2 сообщений из 2, страница 1 из 1
масштабирование фона после repeat
    #37523617
the_sid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
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
масштабирование фона после repeat
    #37525312
the_sid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
решил проблему пока достаточно кривовато:
после формирования изображения сохраняю его в файл:
Код: 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
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / масштабирование фона после repeat
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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