2011-10-26 2 views
2

필자는 사용하는 솔루션을 가지고 있지만 필요한 모든 기능을 실제로 제공하지는 못합니다.그리드 컨트롤에 스냅 패턴 그리기

지금 당장은 Visual 컨테이너의 타원이 포함 된 VisualBrush에 Grid 컨트롤의 배경을 설정하고 있습니다. 이것은 내가 배경색을 설정하는 것을 불가능하게 만든다. (또는 적어도 지금까지는 내 지식으로) 그려진 사각형 뒤에.

나는이 사각형을 위치 기능에 대한 나의 마커로 사용하고 있습니다. 사진보기.

http://imgur.com/AtNYp

배경 색상을 설정할 수도 내 배경 패턴을 유지하는 나를 위해 할 수있는 방법이 있나요? 그것이 (부분적으로) 작동하기 때문에 나는 이것에 눈이 내린 것처럼 느낀다. 때문에 수요

는 :

brush = new VisualBrush(); 
    brush.Stretch = Stretch.Fill; 
    brush.TileMode = TileMode.Tile; 
    brush.Viewport = new Rect(0, 0, SnapDistance, SnapDistance); 
    brush.ViewportUnits = BrushMappingMode.Absolute; 
    brush.Viewbox = new Rect(0, 0, SnapDistance, SnapDistance); 
    brush.ViewboxUnits = BrushMappingMode.Absolute; 
    ellipse = new Ellipse() { Fill = new SolidColorBrush(Colors.Blue), Width = 2, Height = 2 }; 
    brush.Visual = ellipse; 

이 내가 grid.Background로 설정하는 것이다. 내가하고 싶은 것은 내가 링크에 보여줄 패턴을 그려서 도트 패턴으로 그 배경에 컬러를 설정할 수있게하는 것입니다.

+0

고통 포인트와 샘플 코드를 제공하십시오. – Fischermaen

+0

당신이 성취하려고하는 것이 확실하지 않습니다. 배경이 흰색이 아닌 다른 무언가가되기를 원하십니까? 지금 가지고있는 코드를 게시 할 수 있습니까? –

+0

내 VisualBrush 코드 추가 – Gabriel

답변

1

캔버스에 그리드를 스냅 포인트로 오버레이하거나 스냅 포인트로 adorner 레이어를 만들 수 있습니다. MSDN page

Adorners 사용자에게 시각적 표시를 제공하는 데 사용 FrameworkElement 특별한 종류이다에서

인용. 다른 용도 중 Adorners를 사용하여 요소에 기능 핸들을 추가하거나 컨트롤에 대한 상태 정보를 제공 할 수 있습니다.

그래서 (Z-순서대로) 컨트롤 레이아웃은 다음과 같습니다

  • 그리드
  • 스냅 점 (이벤트 후 처리하는 방법을 모르는)
  • 와 오버레이
  • 당신의 요소

또는

  • 그리드
    • adorner 층
  • 당신의 요소
+0

카렐, 답장을 보내 주셔서 감사합니다. 나는 그것이 효과를 발휘한다면 당신의 대답을 조사하고 투표 할 것입니다. – Gabriel

+0

감사합니다. UI 요소를 끌어서 크기를 조정할 수있는 예가 나와주세요. http://denisvuyka.wordpress.com/2007/10/15/wpf-simple-adderner-usage-with-drag-and-resize- operations /) –

+0

Adorner가 Grid 구성 요소로 작동하지 않습니까? AdornerLayer.GetAdornerLayer (그리드)를 가져 오려고 할 때; 그것은 null을 반환합니다! 어떤 제안? – Gabriel