내 ImageBrush가 타일 이미지를 스케일링하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1450376

  •  11-09-2019
  •  | 
  •  

문제

창의 배경을 그리는 데 사용하고 싶은 다음 ImageBrush 선언이 있습니다.

     <ImageBrush x:Key="Fondo" 
      ImageSource="Fondo.png"        
      Viewport="0,0,0.1,0.1" TileMode="Tile"/>

윈도우의 배경 속성에 대한 정적 소송 바인딩을 사용하여 설정하면 브러시가 올바르게 렌더링되지만 이미지는 스케일링됩니다. 이것은 내가 원하지 않는 동작입니다. 응용 프로그램이 이미지를 기본 해상도로 사용하고 어떤 종류의 스케일링없이 창 배경을 채우는 데 필요한 것으로 반복하기를 원합니다. 내가 뭘 잘못하고 있는지 모르겠어요.

내가 사용하는 이미지는 폭이 200px이고 높이 200px입니다. 내가 가진 뷰포트 가치는 추측되었지만, 그렇게하기 전에는 작동하지 않았습니다.

도움을 주셔서 감사합니다

편집하다: 질문의 모순을 수정했습니다

도움이 되었습니까?

해결책

문제를 발견했습니다. 이미지는 72 DPI 해상도를 위해 설계된 PNG였습니다. 따라서 WPF는 표준 96 DPI 해상도와 일치하도록이를 확장하고있었습니다. 문제는 코드와 관련이 없었습니다.

다른 팁

소스 이미지의 해상도를 알고 있다면 뷰 박스 및 뷰포트 값을 픽셀로 설정할 수 있습니다. ViewBoxUnits 및 ViewPortUnits를 절대로 설정하면 원하는 효과를 달성 할 수 있어야합니다.

<ImageBrush ViewBox="0,0,200,200" 
ViewBoxUnits="Absolute"
ViewPort="0,0,200,200"
ViewPortUnits="Absolute" />
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top