Mam problem z wyświetlaniem obrazów w WPF.
Oto mój kod:
<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>
Mam obraz o oryginalnym rozmiarze 32 * 32, ale kiedy uruchomię powyższy kod, obraz rozciągnie się, aby wypełnić całą przestrzeń, poza jego oryginalny rozmiar. Ustawiłem również właściwość „Stretch” na „None”, ale wygląda na to, że to nie działa.
Jak więc mogę rozwiązać ten problem? Dziękuję Ci!
Ten działa dla mnie, dla obrazu z
600x800 pixels
i96dpi
.@ rishad2m8 Jeśli rozmiar jest nieznany, można najpierw wykryć rozmiar za pomocą https://msdn.microsoft.com/en-us/library/system.drawing.image.size(v=vs.110).aspx , jak sądzę.
źródło
Spróbuj nie określać szerokości ani wysokości, zamiast tego użyj tego w ten sposób:
źródło
Dodając do odpowiedzi Paya: aby zrekompensować
WPF
próbę dostosowania się do rozdzielczości monitorów, powinieneś być w stanie ustawićWidth
iHeight
do oryginalnych wymiarów i wykorzystania plikuStretch="Fill"
. To zadziałało dla mnie.źródło
Jeśli chcesz wyświetlić obraz w oryginalnym rozmiarze, ale nie znasz rozmiaru obrazu, myślę, że najlepszym sposobem jest ustawienie obrazu jako tła elementu UIElement. Lubię to:
źródło