Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 wpf подогнать по размеру image  [new]
Nechto
Member

Откуда:
Сообщений: 798
Добрый вечер!

Подскажите пожалуйста, есть ли в xaml стандартный инструмент, для пропорционального уменьшения фото?

<Window.Resources>
        
        <XmlDataProvider x:Key="DataProvider" XPath="/root">
            <x:XData>
                <root xmlns="">
                    <Img>C:\TEMP\Images\1.jpg</Img>
                    <Img>C:\TEMP\Images\2.jpg</Img>
                    <Img>C:\TEMP\Images\3.jpg</Img>
                    <Img>C:\TEMP\Images\4.jpg</Img>
                </root>
            </x:XData>
        </XmlDataProvider>

        <Style TargetType="{x:Type ListBox}" x:Key="ItemTemplate">
            <Setter Property="Foreground" Value="White" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBox}" >
                        <WrapPanel Margin="5" 
                                   IsItemsHost="True" 
                                   Orientation="Horizontal"
                                   ItemWidth="150" 
                                   VerticalAlignment="Top"
                                   HorizontalAlignment="Stretch">
                        </WrapPanel>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>

    <Grid>
        <ListBox Style="{StaticResource ItemTemplate}" ItemsSource="{Binding Source={StaticResource DataProvider}, XPath=Img}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Border CornerRadius="6" Padding="3" Background="LightBlue" HorizontalAlignment="Left" VerticalAlignment="Top">
                        <Image Source="{Binding Path=InnerText}"/>
                    </Border>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Grid>
18 фев 19, 18:38    [21813591]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20369
Так Image его пропорционально уменьшает.
Единственное - мне попадались какие-то jpg, которые Image уменьшал не пропорционально, а вписал в квадрат, который я ему задал. Но так как это были несколько фото из одной серии и на сотнях других фото я с этим ни разу не столкнулся, я решил, что это какие-то кривые жпеги.
18 фев 19, 19:15    [21813641]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Nechto
Member

Откуда:
Сообщений: 798
Shocker.Pro,

Мне бы замостить фото в квадрат 150х150, при помощи масштабирования, не зависимо от съемки(вертикальной или горизонтальной). Чтобы не было не заполненных краёв квадрата снимком.
18 фев 19, 19:49    [21813666]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20369
Ну и?
Взял твой код, добавил
<Image Source="{Binding Path=InnerText}" Width="150" Height="150"/>

все работает
18 фев 19, 20:23    [21813694]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20369


К сообщению приложен файл. Размер - 47Kb
18 фев 19, 20:25    [21813696]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20369
Nechto
Чтобы не было не заполненных краёв квадрата снимком.
Nechto
для пропорционального уменьшения фото?
Я где-то тут не понимаю. Может ты хотел сказать "непропорционального"? Тогда используй Image.Stretch
18 фев 19, 20:39    [21813709]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 4918
Shocker.Pro
Тогда используй Image.Stretch

Он и так используется, по умолчанию равен Uniform (пропорциональное заполнение по меньшей стороне размеров Image). Возможно, ему требуется UniformToFill (пропорциональное заполнение по большей стороне с обрезанием изображения). Лично я вот из этого
Nechto
Чтобы не было не заполненных краёв квадрата снимком.

вообще могу понять, кто на ком стоял, и что требуется.
А все доступные варианты Stretch с картинками приведены где обычно.
19 фев 19, 07:30    [21813892]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Nechto
Member

Откуда:
Сообщений: 798
Shocker.Pro
Nechto
Чтобы не было не заполненных краёв квадрата снимком.
Nechto
для пропорционального уменьшения фото?
Я где-то тут не понимаю. Может ты хотел сказать "непропорционального"? Тогда используй Image.Stretch


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

Image.Stretch - сейчас попробую
19 фев 19, 07:38    [21813897]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 4918
Nechto
Вот видите по краям квадрата, имеются голубые не заполненные пустоты, вот их и нужно заполнить.

UniformToFill
19 фев 19, 07:43    [21813900]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Nechto
Member

Откуда:
Сообщений: 798
Да, нужно UniformTofill
19 фев 19, 07:45    [21813901]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Nechto
Member

Откуда:
Сообщений: 798
Попробовал, все работает. Спасибо, за помощь!
19 фев 19, 08:06    [21813907]     Ответить | Цитировать Сообщить модератору
 Re: wpf подогнать по размеру image  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20369
Это называется "непропорционально"
19 фев 19, 11:03    [21814074]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить