Мои изображения размыты! Почему SnapsToDevicePixels WPF не работает?

Ошибка # 1001 - проблема с Adobe Flash Player. Вам нужно будет повторно развернуть (переустановить) ваш Adobe Flash Player, так как в нем отсутствуют важные библиотеки или эти библиотеки повреждены. Это задокументированная ошибка с Adobe. Вы можете прочитать больше о проблеме по этой ссылке здесь:

https://forums.adobe.com/thread/258374?start=0&tstart=0

[113 К сожалению, это не проблема, связанная с Selenium.

Решение - переустановить Adobe Flash Player. Если ваши разрешения на вашей рабочей станции недостаточно высоки для этого, обратитесь к ИТ-специалистам.

163
задан Zoe 24 May 2019 в 21:23
поделиться

8 ответов

Вы можете попробовать новое свойство, доступное сейчас в WPF4 . Оставьте RenderOptions.BitmapScalingMode на HighQuality или просто не объявляйте его.

БлижайшееСоседство у меня сработало, за исключением того, что при увеличении масштаба изображения в приложении появлялись неровные растровые изображения. Также не удалось исправить какие-либо глюки, из-за которых значки меняли размер странным образом.

В корневом элементе (т.е. в главном окне) добавьте это свойство: UseLayoutRounding = "True" .

Свойство, ранее доступное только в Silverlight, теперь устраняет все проблемы с размером растрового изображения. :)

227
ответ дан 23 November 2019 в 21:17
поделиться

Я полагаю, что это - ошибка (или по крайней мере это было). Проверьте этот переписка поддержки Microsoft страница для некоторых идей зафиксировать его.

2
ответ дан Beep beep 23 November 2019 в 21:17
поделиться

Вместо того, чтобы использовать SnapsToDevicePixels, я вместо этого использовал RenderOptions.BitmapScalingMode, и они теперь хороши и четки!

XAML:

<Image Name="ImageOrderedList"
       Source="images/OrderedList.png"
       ToolTip="Ordered List"
       Margin="0,0,5,5"
       Width="20"
       Height="20"
       RenderOptions.BitmapScalingMode="NearestNeighbor"
       MouseUp="Image_MouseUp"
       MouseEnter="Image_MouseEnter"
       MouseLeave="Image_MouseLeave" />

Вот то, как это теперь смотрит:

Четкие Изображения WPF http://img13.imageshack.us/img13/9926/crispwpfimages.gif

71
ответ дан Zack Peterson 23 November 2019 в 21:17
поделиться

Моя первая мысль, читая вопрос, была Вами, аварийно завершали изображение слишком много, но это, кажется, не имеет место, смотря на изображение, которое Вы имеете приложения.

Долгое размышление является цветовой палитрой, но с черным цветом как один из цветов, который не представляет правильно, это не столь вероятно.

, Если можно полностью исключить два выше, я в настоящее время озадачиваюсь.

Как эксперимент, можно попробовать другие графические форматы, но PNG должен быть прекрасным. Я должен буду думать, что это через еще некоторых придумывает лучший ответ.

0
ответ дан Gregory A Beamer 23 November 2019 в 21:17
поделиться

RenderOptions. BitmapScalingMode = "NearestNeighbor" работает хорошо большую часть времени. Однако иногда Вы будете получать графические незначительные сбои (в моем случае, 4 из 5 изображений обнаружился прекрасный, но пятое имело небольшое искажение на правом краю). Я зафиксировал его мое увеличение правого поля управления Изображением 1.

Если это все еще не фиксирует его, попробуйте Растровое управление классом выше того EugeneZ упоминания. Это - замена для управления Изображением, и до сих пор это работало вполне прилично на меня. См. http://blogs.msdn.com/dwayneneed/archive/2007/10/05/blurry-bitmaps.aspx

5
ответ дан 23 November 2019 в 21:17
поделиться

Удостоверьтесь, что Вы сохраняете образ в том же DPI, как Ваше приложение WPF работает в, некоторым форматам изображения сохранили эту информацию как метаданные. Я не знаю, решает ли это проблему, но у меня были некоторые проблемы из-за этого, где изображения, измененные к 100%, стали больше или меньшими, чем ожидалось.

Могло бы быть что-то подобное.

4
ответ дан 23 November 2019 в 21:17
поделиться

+1 для Зака ​​Петерсона

Я использую .Net 3.5 sp1, и это кажется наиболее простым решением для большого количества нечетких изображений. Нет ничего сложного в том, чтобы указать RenderOptions на месте, но для сторонних компонентов стиль в ресурсе уровня приложения имеет смысл:

 <Style TargetType="{x:Type Image}">
    <Setter
        Property="RenderOptions.BitmapScalingMode"
        Value="NearestNeighbor" />
 </Style>

Хорошо работал, когда AvalonDock начал отображать размытые значки.

22
ответ дан 23 November 2019 в 21:17
поделиться

Я обнаружил, что RenderOptions.BitmapScalingMode = "NearestNeighbor" у меня не работает. Я использую Windows XP x32 с DirectX 9.0c. Поскольку фактический рендеринг для WPF выполняется с помощью DirectX, это может иметь эффект. У меня действительно включено сглаживание для XP со следующими записями реестра:

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Avalon.Graphics] "MaxMultisampleType" = двойное слово: 00000004 "EnableDebugControl" = dword: 00000001

Однако отключение aa с этими настройками не влияет на изображения. Я думаю, это влияет только на 3D Viewports.

Наконец, я обнаружил, что размытие происходит как с текстом TextBlocks, так и с изображениями. И размытие происходит только для некоторых текстовых блоков и изображений, а не для всех.

2
ответ дан 23 November 2019 в 21:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: