사용할 수없는 버튼에서 이미지의 채도를 낮출 수있는 방법이 있습니까? 예. ICommand.CanExecute = false
? 또는 별도의 이미지 + 스타일/트리거를 사용해야합니까?비활성화 된 버튼에서 이미지의 채도를 떨어 뜨리는 방법이 있습니까?
3
A
답변
6
버튼을 사용할 수 없을 때 이미지의 불투명도를 줄이기 위해 특수한 스타일을 사용하고 있습니다 (예, 단추가 바인딩 된 경우에도 가능합니다. 명령). 기술적으로,이 불포화되지 않지만이 비슷하고 자신의 솔루션을 도출 도움이 될 수 있습니다 : 여기
<Style x:Key="buttonImage">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type Button}, AncestorLevel=1}, Path=IsEnabled}" Value="False">
<Setter Property="Image.Opacity" Value="0.25"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
4
이다 채도 쉐이더 (Desaturate.fx) :
sampler2D inputSampler : register(S0);
/// <summary>The strength of the effect.</summary>
/// <minValue>0</minValue>
/// <maxValue>1</maxValue>
/// <defaultValue>0</defaultValue>
float Strength : register(C0);
float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 srcColor = tex2D(inputSampler, uv);
float3 rgb = srcColor.rgb;
float3 c = (1 - Strength)*rgb + Strength* dot(rgb, float3(0.30, 0.59, 0.11));
return float4(c, srcColor.a);
}
컴파일 그것은 자원으로 .PS 파일을 추가하고 다음과 같이 싸서 :
public class Desaturate : ShaderEffect
{
public static readonly DependencyProperty InputProperty = ShaderEffect.RegisterPixelShaderSamplerProperty(
"Input",
typeof(Desaturate),
0);
public static readonly DependencyProperty StrengthProperty = DependencyProperty.Register(
"Strength",
typeof(double),
typeof(Desaturate),
new UIPropertyMetadata(((double)(0D)), PixelShaderConstantCallback(0)));
public Desaturate()
{
PixelShader pixelShader = new PixelShader();
pixelShader.UriSource = new Uri("/So.Wpf;component/Effects/Desaturate.ps", UriKind.Relative);
this.PixelShader = pixelShader;
this.UpdateShaderValue(InputProperty);
this.UpdateShaderValue(StrengthProperty);
}
public Brush Input
{
get
{
return ((Brush)(this.GetValue(InputProperty)));
}
set
{
this.SetValue(InputProperty, value);
}
}
/// <summary>The strength of the effect. 0 is unchanged and 1 is monochrome</summary>
public double Strength
{
get
{
return ((double)(this.GetValue(StrengthProperty)));
}
set
{
this.SetValue(StrengthProperty, value);
}
}
}
그런 다음이 같은 XAML에서 사용할 수 있습니다, 강도가 바인딩 그래서 그것을 접선 순이익은 트리거를 통해 활성화 :
<Grid>
<Image Source="http://i.imgur.com/CN63KcN.jpg">
<Image.Effect>
<effects:Desaturate Strength="{Binding ElementName=SaturationSlider, Path=Value}"/>
</Image.Effect>
</Image>
<Slider x:Name="SaturationSlider" Minimum="0" Maximum="1" VerticalAlignment="Bottom"/>
</Grid>
관련 문제
- 1. 데비안 패키지 관리자의 가치를 떨어 뜨리는 스크립트
- 2. jquery ui - 이미지를 모달에 떨어 뜨리는 방법
- 3. 공을 무작위로 iPhone에 떨어 뜨리는 방법
- 4. Matlab에서 이미지의 품질을 떨어 뜨림
- 5. FancyBox를 윈도우의 왼쪽 상단 모서리에서 멀리 떨어 뜨리는 방법은 무엇입니까?
- 6. jquery-ui 끌어서 놓기 - 항목을 떨어 뜨리는 방법?
- 7. 지도에서 일부 간격 후 다른 핀을 떨어 뜨리는 방법
- 8. Java SWT - 비활성화 된 이미지의 버튼
- 9. WPF-MVVM/비활성화 버튼에서 오류 처리
- 10. UIImage의 채도를 변경하려면 어떻게해야합니까?
- 11. 델파이 6에서 마우스를 TPanel에서 멀리 떨어 뜨리는 것을 탐지하는 방법은 무엇입니까?
- 12. JQuery에서 이미지의 일부분을 변경하는 방법이 있습니까?
- 13. 왜 PNG 이미지의 크기를 조정해도 투명도가 떨어 집니까?
- 14. 비활성화 된 WebControls에 대한 기본 스타일을 비활성화/덮어 쓰기하는 방법이 있습니까
- 15. radiogroup의 선택된 라디오 버튼에서 텍스트를 가져 오는 방법이 있습니까?
- 16. 정수를 사용하여 플로트 수를 대체하고 정밀도와 효율성을 떨어 뜨리는 방법은 무엇입니까?
- 17. 기본 키의 클러스터되지 않은 인덱스를 클러스터 된 인덱스로 변환하는 방법이 있습니까? (SQL Server 2008)
- 18. 비활성화 된 HTML 입력시
- 19. 봉쇄의 가장자리 가까이에있을 때 큰 물체를 작은 물체에 떨어 뜨리는 방법은 무엇입니까?
- 20. 아이폰의 연속적인 핀을 떨어 뜨리는 동안 첫 번째 핀을 제거하는 방법은 무엇입니까?
- 21. rich : tree 노드를 무너 뜨리는 이벤트가 있습니까?
- 22. 제출 된 필드 비활성화
- 23. CSS의 비활성화 된 버튼입니까?
- 24. DataGrid의 초점이 맞지 않으면 선택한 행의 채도를 낮출 수 있습니까?
- 25. Apache에서 regex 규칙을 비활성화 (또는 활성화) 할 수있는 방법이 있습니까?
- 26. 자바 스크립트없이 PHP에서 이미지의 크기를 "쉽게"얻을 수있는 방법이 있습니까?
- 27. CSS에서 사용되는 이미지의 기본 디렉토리를 설정하는 방법이 있습니까?
- 28. 업로드 할 때 이미지의 너비와 높이를 확인할 수있는 방법이 있습니까?
- 29. Javascript를 사용하여 이미지의 비트 맵 데이터에 액세스하는 방법이 있습니까?
- 30. jquery로 이미지의 "naturalWidth"를 읽을 수있는 방법이 있습니까?