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
'itsource' 카테고리의 다른 글
범위가 아닌 어레이 데이터에서 차트 생성 (0) | 2023.04.12 |
---|---|
LF를 CRLF로 대체하는 Git (0) | 2023.04.12 |
Bash에서 문자열에서 마지막 n자를 제거하려면 어떻게 해야 합니까? (0) | 2023.04.12 |
Git에서 로컬 작업 디렉토리를 지우려면 어떻게 해야 하나요? (0) | 2023.04.12 |
iOS 업데이트 후에도 이전 시작 화면 및 앱 아이콘 유지 (0) | 2023.04.12 |