Я испытываю очень странную вещь: а TreeView содержит элементы (изображения), объявил этот путь в XAML:Размера изображения в TreeView зависит от цвета изображений битного
<ControlTemplate x:Key="ImageTemplate">
<Image VerticalAlignment="Top"
Visibility="{Binding IsImageVisible,Converter={StaticResource BoolToVisibility}}"
RenderOptions.BitmapScalingMode="NearestNeighbor"
SnapsToDevicePixels="True"
Stretch="None">
<Image.Source>
<BitmapImage UriSource="c:\\imageBMP4.bmp" />
<!-- <BitmapImage UriSource="c:\\imageBMP8.bmp" /> -->
<!-- <BitmapImage UriSource="c:\\imageBMP24.bmp" /> -->
<!-- <BitmapImage UriSource="c:\\imageBMP32.bmp" /> -->
<!-- <BitmapImage UriSource="c:\\imagePNG8.png" /> -->
<!-- <BitmapImage UriSource="c:\\imagePNG24.png" /> -->
<!-- <BitmapImage UriSource="c:\\imagePNG32.png" /> -->
<!-- <BitmapImage UriSource="c:\\imageJPG24.jpg" /> -->
</Image.Source>
</Image>
</ControlTemplate>
Всех изображения 640 * 480, заполненный с сине-белыми горизонтальными 1 пиксельными линиями.
Что я испытываю, если я использую 4 или 8 бит растровые изображения (bmp), они отображаются отлично, пиксель в пиксель на экране размером 640 * 480 в дереве. (однако, прокрутка дерева до конца вызывает проблемы рендеринга, если другие изображения в дереве, см: TreeView/ScrollView rendering bug with bitmaps?) Рендеринг изображения (8 бит BMP) в дереве (половина размера,):
Однако, если я перехожу к 24 или 32-битовому изображению (bmp/png/jpg), они устанавливаются на 853 * 640 (размер оригинала 1,33 *), таким образом, отображаются наклонены/размыты. (однако, в этом случае, прокрутка дерева до конца работает отлично, никаких проблем рендеринга) визуализации изображений (24 бит BMP) в дереве (половина калибровки):
Что такое поведение, и почему? Простое изменение битовой глубины исходного изображения, почему изменяется размер рендеринга изображения?
Я думаю, что это может быть причиной: «Собственно, я видел это регулярно с изображениями PNG. По-видимому, разрешение по умолчанию для PNG равно 72dpi, в то время как разрешение экрана по умолчанию в WPF составляет 96 точек на дюйм. WPF старается учесть это, создавая растровые изображения png, масштабируемые до 133% от их размера пикселей, что является технически правильным, но обычно не то, что пользователь хочет. Вы можете использовать gif или jpg вместо этого, или вы можете комбинировать изображение с LayoutTransform, масштабируя его до 0,75 его размера, или просто придерживайтесь явно настроек размера элемента управления изображением. ' – Zotyi