여러 개의 색상이 지정된 컨트롤이있는 창을 고려하십시오. 모든 방아쇠가 방금 팝업 된 패널을 제외하고 모든 색상이 회색으로 표시되도록 양식에서 일부 방아쇠가 발생하면이 위에 패널을 배치하고 싶습니다. 누군가가 이것으로 나를 도울 수 있습니까 ??wpf에서 배경을 회색조로 바꾸기
1
A
답변
4
그레이 스케일하려는 클라이언트 영역의 Effect 속성을 사용합니다. 그러나 그레이 스케일 변환을 수행하려면 자체 픽셀 쉐이더를 만들어야합니다.
http://windowsclient.net/wpf/wpf35/wpf-35sp1-more-effects.aspx
당신은 신속하게 BlurEffect 클래스 대신 사용자 정의 쉐이더를 사용하여 개념을 테스트 할 수 있습니다.
<Window x:Class="WpfGrayscaleSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="327" Width="526">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="239*" />
<RowDefinition Height="50*" />
</Grid.RowDefinitions>
<Canvas Name="clientArea" Background="Transparent" Grid.Row="0">
<!-- Just some controls -->
<Button Height="31" Name="button1" Width="80" Canvas.Left="30" Canvas.Top="125">Button</Button>
<Button Height="28" Name="button2" VerticalAlignment="Bottom" Click="button2_Click" HorizontalAlignment="Right" Width="75" Margin="0,0,16,34" Canvas.Left="66" Canvas.Top="54">Button</Button>
<Rectangle Margin="86,43,0,0" Name="rectangle1" Stroke="Black" Fill="Crimson" Height="59" HorizontalAlignment="Left" VerticalAlignment="Top" Width="109" Canvas.Left="145" Canvas.Top="44" />
</Canvas>
<!-- Button to activate the shader effect -->
<Button Height="23" Margin="15,0,0,21" Name="button3" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="75" Grid.Row="1" Click="button3_Click">Button</Button>
</Grid>
그리고 단추 3에 대한 이벤트 핸들러는 단순히 것
는 회색 스케일링에 대한 사용자 지정 쉐이더를 연결하는 좀 더 작품이다 물론private void button3_Click(object sender, RoutedEventArgs e)
{
clientArea.Effect = new BlurEffect() { Radius = 10.0 };
}
하지만, 추가 보너스 픽셀 쉐이더의 성능이 향상 될 것입니다.
1
최상위 컨테이너 (그리드 등)에서 더 낮은 ZIndex에 사각형을 만들거나 하나 이상의 중첩 수준을 만듭니다.
패널을 팝업 할 때, 컨트롤과 패널 사이에 맞게 사각형의 ZIndex를 교체하십시오.
회색 음영까지는 VisualBrush로 할 수있는 멋진 방법이 있지만 사각형에 반투명 한 SolidColorBrush를 사용하면 꽤 멀어 질 수 있습니다.
+0
감사합니다. 귀하의 솔루션은 좋은 해킹 인 것 같습니다. – sudarsanyes
관련 문제
- 1. Aero의 WPF에서 버튼 배경을 재정의하십시오.
- 2. 런타임 중에 WPF에서 Canvas의 배경을 변경하려면 어떻게해야합니까?
- 3. ImageSource의 변환기 - 이미지를 회색조로 변환
- 4. OpenGL에서 어떻게 이미지를 회색조로 변환합니까?
- 5. Expression Blend/wpf에서 루핑 배경을 만드는 방법은 무엇입니까?
- 6. 웹 페이지의 회색조로 컬러 이미지 표시
- 7. WPF에서 마우스 오버를 통해 다른 스타일로 단추 스타일 바꾸기
- 8. Cufon이 투명한 PNG 배경을 엉망으로 만들고있다
- 9. OpenFileDialog WPF에서 배경 저장
- 10. CSS를 사용하여 이미지 바꾸기
- 11. 메모장에서 모든 작업 바꾸기/바꾸기
- 12. WPF에서 다중 이미지 자동 조절 배경을 구현하는 방법은 무엇입니까? Android의 9 가지 패치와 비슷합니까?
- 13. CSS 배경을 사용하여 배경을 채우기 위해 이미지 스트레칭
- 14. 레이블의 배경을 투명하게 설정하십시오.
- 15. 이미지 배경을 숨기기
- 16. 배경을 희미하게하는 방법
- 17. 투명한 배경을 가진 UIViewAnimationTransitionCurlUp
- 18. JQuery가 iframe에서 배경을 제거했습니다.
- 19. 한 번만 배경을 칠하십시오
- 20. input.submit에서 배경을 제거하려면 어떻게합니까?
- 21. jquery로 배경을 희미하게하는 방법
- 22. UIWebView 배경을 변경하는 방법
- 23. jqgrid 행의 배경을 설정하십시오.
- 24. 이미지에서 흰색 배경을 제거하십시오.
- 25. Div의 배경을 선택에서 변경하십시오.
- 26. 내 배경을 작동시키는 법
- 27. iPhone - 배경을 UITableViewController에 설정하십시오.
- 28. ListView에서 배경을 그려야합니다.
- 29. div와 배경을 PHP로 애니메이션
- 30. UINavigationBar의 배경을 변경하려면 어떻게해야합니까?
이것은 내가 찾고있는 것입니다. 너의 흐림 효과는 물론, zorder를 변화시키는 micahtan의 생각도 고려 가치가있다. 고마워. – sudarsanyes