У меня есть TreeView в программе WPF, которая имеет изображение на каждом TreeViewItem.Когда я устанавливаю размер этого изображения 21x21 или больше, он отображается нормально - я вижу все изображение.Но если я установлю его на 20x20 или меньше, он ломается - он берет только самые правые пиксели и растягивает их до ширины, которую я ввожу, поэтому я не могу видеть все изображение.
Я создал новый проект дляпроверить, и я заметил, что при увеличении / уменьшении окна дизайнера изображение переходит от хорошего к сломанному.
Это, кажется, странная ошибка, связанная с DPI или масштабированием.
Вот исходное изображение, которое я добавил в TreeView: https://ibb.co/p3tHFJM
Вот скриншот, показывающий проблему.Верхнее изображение - 20х20, а нижнее - 21х21.https://ibb.co/7vJjVS5
Вот демонстрационный код, который вы можете попробовать на своем компьютере.Возможно, вам придется установить размеры меньше, например 5x5, чтобы увидеть проблему.Также пытается увеличить / уменьшить масштаб в конструкторе.
<Window x:Class="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:WpfBug"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TreeView Grid.Row="0" Grid.Column="0" Background="Pink" >
<TreeView.Resources>
<BitmapImage x:Key="PlayIcon" UriSource="/Resources/play.png" />
</TreeView.Resources>
<TreeViewItem Header="These subitems work correctly">
<Button>
<Image Source="{StaticResource PlayIcon}" Width="25" Height="25" />
</Button>
<TextBlock Text="This image is size 25" />
</TreeViewItem>
<TreeViewItem Header="These subitems have broken images">
<Button >
<Image Source="{StaticResource PlayIcon}" Width="11" Height="11" />
</Button>
<TextBlock Text="This image is size 11" />
</TreeViewItem>
</TreeView>
</Grid>
</Window>