2013-02-28 2 views
0

페인트와 같은 응용 프로그램이 있습니다. 마우스를 움직이면 선이 폴리 라인으로 그려집니다. 이제 폴리 라인 외곽선을 패턴 이미지로 바꾸려고합니다. 캔버스에서 마우스를 움직이면 해당 이미지가 폴리 라인 윤곽선처럼 반복됩니다. 나는 이미이 코드를 작성했습니다 :이미지를 폴리선 획 윤곽선으로 사용

<Canvas x:Name="canvas" Background="#00FFFFFF" MouseMove="Canvas_MouseMove"> 
    <Polyline x:Name="polyline" StrokeThickness="20"> 
     <Polyline.Stroke> 
      <VisualBrush > 
       <VisualBrush.Visual> 
        <Image Source="1.png"></Image> 
       </VisualBrush.Visual> 
      </VisualBrush> 
     </Polyline.Stroke> 
    </Polyline> 
</Canvas> 

유일한 문제는 전체 캔버스 보이지 않는 배경으로 이미지를 사용한다는 것입니다 내가 마우스를 이동할 때 배경의 부분은 볼이되었다!

http://goo.gl/staHt

그래서 어떻게이해야 어떤 생각을합니까 : 당신이보고 갖고 싶어

여기 http://goo.gl/2wPKN

도 내 이미지 패턴입니다 : 무슨 뜻인지 얻기 위해이 그림을 봐 이 이미지를 폴리선 윤곽선으로 사용합니까?

+0

이미지가 어떻게 표시되어야합니까? 귀하의 경우 "개요"가 정확히 무엇을 의미합니까? – Clemens

+0

폴리 라인의 선에 정의 된 단순 선을 작은 반복 이미지로 대체하려고합니다. 결과는 현재 출력 (http://goo.gl/2wPKN)과 유사하지만 이미지는 캔버스의 배경이 아닌 폴리 라인의 경로로 반복됩니다. 나는 나 자신을 분명히했으면 좋겠다. 그러나 내가 아직도 어떤 의미를 가지지 않으면 미안하다! – Max

+0

아래 답변과 같이 바둑판 식 브러시를 사용해 보셨습니까? [ViewportUnits] (http://msdn.microsoft.com/en-us/library/system.windows.media.tilebrush.viewportunits.aspx)를 'Absolute (절대)'로 설정하고 적절한 뷰포트 크기를 설정할 수 있습니다. – Clemens

답변

0

당신은 TileTileMode 설정하고 원하는 이미지 타일 크기를 지정하는 Viewport와 함께 ImageBrush를 사용할 수 있습니다.

<Polyline x:Name="polyline" StrokeThickness="20"> 
    <Polyline.Stroke> 
     <ImageBrush ImageSource="1.png" TileMode="Tile" 
        ViewportUnits="Absolute" Viewport="0,0,20,20"/> 
    </Polyline.Stroke> 
</Polyline> 
+0

Danke Clemens, 정확히 내가 원했던 것입니다. 시간 내 주셔서 감사합니다. – Max

0

나는 PolyLine으로 시도하지 않았지만 경로를 사용하여 이렇게 획을 설정할 수 있습니다.

<Path StrokeThickness="10" Data="M 10,10 100,10" Stretch="Fill" Margin="81,36,251,100"> 
    <Path.Stroke> 
     <ImageBrush ImageSource="1.png" Viewport="0,0,1,1" TileMode="Tile"/> 
    </Path.Stroke> 
</Path> 
+0

입력 해 주셔서 감사합니다.이 코드는 이전과 같은 결과를 주며'ViewportUnits = "를 추가하여" 절대 ""그것은 이미지가없는 일정한 분홍색 솔을줍니다. – Max