itsource

WPF: 이미지를 원래 크기로 표시하는 방법

mycopycode 2023. 4. 12. 22:22
반응형

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에 의존하지 않기 때문에 자동으로 이미지의 크기를 조정합니다.


편집

MSDN 링크가 끊어졌습니다.여기서 새로운 링크 MSDN 블로그 - 흐릿한 비트맵이 표시됩니다.새로운 링크도 동작하지 않게 되었을 경우에 대비하여 오래된 링크를 archive.org 에 사용할 수 있도록 합니다.

너비 또는 높이를 지정하지 않고 다음과 같이 사용합니다.

<Image Source="/images/user_add.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" />
<Image Source="Images/Background.png" UseLayoutRounding="True" SnapsToDevicePixels="True" Width="600" Height="800" Stretch="Fill" />

이건 나한테도 잘 맞는 것 같아600x800 pixels그리고.96dpi.

@rishad2m8 사이즈를 알 수 없는 경우는 https://msdn.microsoft.com/en-us/library/system.drawing.image.size(v=vs.110).aspx에서 먼저 사이즈를 검출할 수 있다고 생각합니다.

Paya의 답변에 추가: 보상하기 위해WPF모니터 해상도에 맞게 조정하려는 경우,Width그리고.Height파일의 원래 치수와 용도에 맞게Stretch="Fill"이건 나한테 효과가 있었어.

이미지를 원래 크기로 표시하고 싶지만 이미지 크기를 모르는 경우에는 UIlement의 배경으로 설정하는 것이 가장 좋다고 생각합니다.다음과 같이 합니다.

    <Button Height="100" Width="100">
        <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

반응형