2011-09-01 4 views
2

그리드의 배경 브러시를 ImageBrush로 설정했습니다.
그러나 Grid의 FlowDirection을 RightToLeft로 설정하면 이미지가 가로로 뒤집 깁니다.가로로 뒤집기 격자 배경 이미지 (브러시)

특정 전환 또는 다른 방법을 사용하여 표 배경의 ImageBrush를 뒤집을 수 있습니까?

답변

0

글쎄, 난 내 댓글 오래된 것을 이해,하지만이 질문은 Google 검색에서 첫 번째 중 하나를 팝업, 그래서 여기 내 솔루션입니다 왼쪽 문화. FlowDirection = RTL을 설정하는 간단한 결정에는 회사 로고가 들어있는 배경이 뒤집혀서 예기치 않은 단점이 있습니다. 배경 렌더링에 사용 된 이미지 브러시에 대한 행렬 변환을 적용했습니다.

var mbgBrush = TryFindResource("MainBackground") as Brush; 
     if (mbgBrush == null) return null; 
     if (FlowDirection == FlowDirection.LeftToRight) return mbgBrush; 
     var mainBgImageBrush = mbgBrush as ImageBrush; 
     if (mainBgImageBrush == null) return mbgBrush; 
     var flipXaxis = new MatrixTransform(-1.0, 0, 0, 1.0, 1, 0); 
     var flippedBrush = new ImageBrush 
          { 
           Stretch = Stretch.None, 
           Opacity = 1.0, 
           ImageSource = mainBgImageBrush.ImageSource, 
           RelativeTransform = flipXaxis 
          }; 
     return flippedBrush; 
1

합리적인 방법으로는 할 수있는 일이 거의 없습니다.

대신 Grid.RowSpan, Grid.ColumnSpan을 사용하여 Image 요소를 Grid의 첫 번째 항목으로 배치하여 모든 셀을 덮습니다. Use Stretch = "Fill"은 이미지의 배경이 일반적으로 어떻게 작동하는지 보여주기 때문입니다.

나는 오른쪽 대에 대한 응용 프로그램을 지역화되었습니다