2011-02-28 2 views
2

다양한 크기의 사용자 지정 이미지를 사용하여 그래픽 배경이 필요한 캔버스가 있지만 배경 이미지의 높이와 너비를 어딘가에 일부 속성에 바인딩하려고합니다. 지금은 이미지가 배경으로 표시되지만 크기는 고정되어 있습니다. 이미지와 이미지 브러시의 너비와 높이 속성은 읽기 전용입니다. 어쨌든 너비와 높이를 묶는가?캔버스 배경의 바인딩 크기

p.s 뷰포트를 사용해 보았지만 rect 개체를 사용했으며 너비와 높이가 종속성 속성이 아닙니다. 그런 다음 뷰포트의 타일 하나를 사용하여 사각형에 넣으려고했습니다. 원하는 사각형을 얻기 위해 사각형의 크기를 조정할 수 있지만 사각형을 캔바스의 배경으로 배치하는 방법을 알 수는 없습니다. 어떤 아이디어? 미리 감사드립니다.

답변

3

쉬운 방법은 Canvas의 배경으로 VisualBrush을 사용하는 것입니다. 없음으로 스트레치를 설정하고 폭을 결합하고 Visual

<Canvas ...> 
    <Canvas.Background> 
     <VisualBrush Stretch="None"> 
      <VisualBrush.Visual> 
       <Image Source="SomeSource" 
         Stretch="Fill" 
         Width="{Binding ...}" 
         Height="{Binding ...}"/> 
      </VisualBrush.Visual> 
     </VisualBrush> 
    </Canvas.Background> 
    <!--...--> 
</Canvas> 
+0

고마워요,이게 단순하다고 믿을 수가 없었어요. 시각 브러시, 뷰포트, 이미지 브러시 및 기타 수많은 것들을 가지고있었습니다. 작동하지만 좋고 단순하지는 않습니다. 고맙습니다. –

1

정확히 무엇을하려하든 따라갈 수는 없지만 VisualBrush를 사용하여 사각형을 캔버스의 배경으로 넣을 수는 있습니다.

나는 당신이하고있는 일을 쉽게 풀 수 있다고 확신하지만, 당신이하고 싶은 일을 정말로 이해할 수는 없습니다.

+0

유감의 Image의 높이 난 정말이 더 명확하게 설명하는 방법을 모르겠어요. 간단히 말해서, 바인딩을 사용하여 런타임 중에 동적으로 캔버스 배경 이미지의 크기를 조정하려고합니다. –