Programing

WPF : 이미지를 원래 크기로 표시하는 방법은 무엇입니까?

lottogame 2020. 8. 25. 19:20
반응형

WPF : 이미지를 원래 크기로 표시하는 방법은 무엇입니까?


WPF에서 이미지를 표시하는 데 문제가 있습니다.

내 코드는 다음과 같습니다.

<Button HorizontalAlignment="Left" Grid.Column="1" Grid.Row="5" Margin="0,5">
        <Button.Content>
            <StackPanel Orientation="Horizontal" Margin="10,0">
                <Image Source="/images/user_add.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" Width="24" Height="24" />
                <TextBlock Text="添加" />
            </StackPanel>
        </Button.Content>
    </Button>

원본 크기가 32 * 32 인 이미지가 있지만 위 코드를 실행하면 이미지가 원래 크기를 넘어서 모든 공간을 채우도록 늘어납니다. 또한 "Stretch"속성을 "None"으로 설정했지만 작동하지 않는 것 같습니다.

그렇다면이 문제를 어떻게 해결할 수 있습니까? 감사합니다!


여기에 비슷한 질문입니다. 일반적으로 설정 Stretch="None"으로 충분합니다.

또한 DPI가 메타 데이터에 설정된 이미지를 갖는 것도 매우 중요합니다. 이미지의 DPI가 모니터의 DPI (일반적으로 96)와 다른 경우 WPF가 DPI에 독립적이 되려고하므로 이미지의 크기를 자동으로 조정 한다는 사실을 알아 내기까지 꽤 오랜 시간이 걸렸습니다 .


<Image Source="Images/Background.png" UseLayoutRounding="True" SnapsToDevicePixels="True" Width="600" Height="800" Stretch="Fill" />

이 이미지는 600x800 pixels96dpi.

@ rishad2m8 크기를 알 수없는 경우 https://msdn.microsoft.com/en-us/library/system.drawing.image.size(v=vs.110).aspx로 크기를 먼저 감지 할 수 있습니다 .


너비 나 높이를 지정하지 말고 대신 다음과 같이 사용하십시오.

<Image Source="/images/user_add.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" />

파야의 대답에 추가 : 보상하는 WPF당신이 설정할 수 있어야 모니터 해상도에 적응의 시도 WidthHeight파일의 원래 크기와 사용을 Stretch="Fill". 이것은 나를 위해 일했습니다.


이미지를 원래 크기로 표시하고 싶지만 이미지 크기를 모르는 경우 가장 좋은 방법은 이미지를 UIElement의 배경으로 설정하는 것입니다. 이렇게 :

    <Button>
        <Button.Background>
            <ImageBrush ImageSource="/images/user_add.png" Stretch="None"/>
        </Button.Background>
    </Button>

참고 URL : https://stackoverflow.com/questions/3055550/wpf-how-to-display-an-image-at-its-original-size

반응형