Лучший обходной путь, который я могу придумать, это:
<Image x:Key="TB_NewIcon" Source="Toolbar Images/NewDocumentHS.png" Height="16" Width="16" SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="NearestNeighbor"/>
...
<Button Command="ApplicationCommands.New" Content="{StaticResource TB_NewIcon}" Padding="2,2,2,1"/>
или в качестве альтернативы:
<BitmapImage x:Key="TB_NewIcon" UriSource="Toolbar Images\NewDocumentHS.png"/>
...
<Button Command="ApplicationCommands.New" Padding="2,2,2,1">
<Image Source="{StaticResource TB_NewIcon}" Height="16" Width="16" SnapsToDevicePixels="True" RenderOptions.BitmapScalingMode="NearestNeighbor"/>
</Button>
Для тега кнопки атрибут Padding необходим для того, чтобы изображение не обрезалось на высоте 15 пикселей и чтобы размер кнопки не изменялся в соответствии с изображением. В качестве альтернативы, мы можем указать Padding = "1", но тогда мы должны вручную установить Height = "21" и Width = "22", чтобы гарантировать, что кнопка не будет изменена в соответствии с изображением
На вкладке «Изображение» высота и ширина необходимы, чтобы изображение не растягивалось. SnapsToDevicePixels и RenderOptions.BitMapScalingMode необходимы для того, чтобы не было размытия. Я не могу обещать, что это будет хорошо работать для всех разрешений.
Примечание:
Для значка NewDocumentHS.png, который вызывает большинство проблем, так как он занимает все 16 пикселей высоты, вы можете настроить отступ на «1,1,3,2», чтобы нижняя часть выровнялась больше правильно с другими значками.