2012-09-14 2 views
0

저는 매우 눈이 사탕 같은 프로그램을 만들고 있습니다. 리플렉션과 3D 깊이를 컨트롤에 추가해야합니다. 내가 제어 몇 번을 칠 필요가 두 경우 모두에 컨트롤을 두 번 붙여 넣으십시오.

만에 변경 : 나는 바닥에 다시 컨트롤을 다시 칠 +를 플립해야 반사를 들어

.

3D 깊이는 +면의 뒤쪽에 많은 사본이 있습니다.

질문은 컨트롤을 수정하고 그 아래/뒤쪽에 페인트하기 위해 컨트롤 이미지를 어떻게 얻을 수 있습니까? 그러한 행동에 관한주의 사항 및 경고/유용한 정보가 있습니까? (나는 전에 비슷한 것을 시도한 적이 없다.)

감사합니다.

답변

2

WPF에서는 과 같은 다른 요소의 배경/채우기로 VisualBrush을 사용할 수 있습니다. 이 VisualBrush은 콘텐츠를 모방하기 위해 다른 컨트롤에 바인딩 할 수있는 Visual 속성을 가지고 있습니다. 이 컨트롤에서 변형 및 알파 마스크를 사용하면 반사 스타일 효과를 적용하는 데 도움이됩니다. 예 :

<StackPanel Width="200"> 
    <TextBox x:Name="tb">Hello world</TextBox> 
    <Rectangle Height="40" HorizontalAlignment="Stretch"> 
     <Rectangle.Fill> 
     <VisualBrush Visual="{Binding ElementName=tb}" /> 
     </Rectangle.Fill> 
     <Rectangle.RenderTransform> 
     <ScaleTransform CenterY="20" ScaleY="-1" /> 
     </Rectangle.RenderTransform> 
     <Rectangle.OpacityMask> 
     <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
      <GradientStop Color="#00000000" Offset="0" /> 
      <GradientStop Color="#FFFFFFFF" Offset="1" /> 
     </LinearGradientBrush> 
     </Rectangle.OpacityMask> 
    </Rectangle> 
    </StackPanel> 
+0

대단히 감사합니다. – MasterMastic