본문 바로가기
개발 이야기/C# 이야기

C# .Net Image.Stretch 속성

by 런던살자 2020. 4. 18.

안녕하세요 

 

마블랑입니다.

 

C# 에서 이미지 컨트롤을 사용할때 이미지 컨트롤에 따라 표시되는 이미지의 크기를 조절할수 있습니다.

Image에 Stretch 속성을 이용하면 되는데요

 

표현해주고싶은대로 Stretch를 설정하여 조정할수 있습니다.

그럼 어떤 속성이 있는지 살펴보기 전에 코드를 먼저 살펴보며 Stretch속성을 어떻게 설정하나 보겠습니다.

 

아래 코드는 xaml 코드에서 Stretch 속성을 설정하였지만 C# 코드에서도 Stretch속성을 조정할수있습니다~

<Window x:Class="WPF_IMAGE.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WPF_IMAGE"
        mc:Ignorable="d"
        Title="MainWindow" Height="1252.414" Width="1419.083">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <Canvas Background="#FFE3F5CD">
            <Image x:Name="Image_01"  Height="500" Canvas.Left="0" Canvas.Top="0" Width="600"/>
            <Image x:Name="Image_02"  Height="500" Canvas.Left="746" Canvas.Top="0" Width="600" Stretch="Fill"/>
            <Image x:Name="Image_03"  Height="500" Width="600" Stretch="UniformToFill" Canvas.Top="608"/>
        </Canvas>
    </Grid>
</Window>

 

Stretch 속성은 이미지 컨트롤의 속성창에서 설정을 하면 xmal 코드에 자동으로 추가됩니다. 

 

속성의 검색창에 Stretch를 검색해주세요

 

위 코드를 보면 이미지 컨트롤 Image_01은 Stretch 속성이 기본값인 'Uniform'으로 설정해두었기 때문에 코드에서는 표시가 되지 않습니다.

 

Stretch 속성의 'Uniform'은 이미지의 사이즈를 변경하지 않고 그대로 화면에 표시하게 합니다.

 

 

다른 이미지 컨트롤 Image_02 는 Stretch 속성을 'Fill'로 설정해두었습니다. 

 

Stretch 속성의 'Fill'은 현재 이미지컨트롤의 크기대로 이미지를 확대 및 축소하여 가득 채우는 것입니다. 

 

아마 비율이 맞지 않는다면 이미지가 늘어지거나 눌려서 표시가 되겠군요. 

 

 

나머지 Image_03은 'UniformToFill'로 설정하였습니다.

 

나머지 속성인 'UniformToFill'은 본래 이미지의 가로 세로 비율은 유지하고 현재 이미지 컨트롤의 사이즈에 맞춰서 확대축소되는 속성입니다.

 

이미지 컨트롤과 비율이 맞지 않다면 컨트롤의 한 부분만 공백으로 표시되거나 조금 짤릴수도 있습니다~

 

 

그럼 Stretch를 설정한 뒤에 실행 화면을 보겠습니다~ 

1. 은 Stretch 속성 기본값인 'Uniform' 속성이고 2. 는 'FIll', 3. 은 'UniformToFill' 속성입니다.

 

WPF에서는 xmal에서 Stretch을 조정하였지만 같은 C#인 Winform에서는 디자인 화면이나 소스코드 화면에서 이미지 컨트롤에 Stretch 속성을 조정하면 되겠습니다~

 

 

이상 마블랑이었습니다.

 

읽어주어서 고맙습니다~

댓글