Est-il possible de désaturer les images dans les boutons désactivés? par exemple. ICommand.CanExecute = false
? ou dois-je utiliser des images séparées + Style/TriggersY at-il un moyen de désaturer une image sur un bouton qui est désactivé?
3
A
Répondre
6
J'utilise un style spécial pour cela, ce qui réduit l'opacité de l'image lorsque le bouton est désactivé (oui, cela fonctionne aussi si le bouton est lié à une commande). Techniquement, cela est désaturation pas, mais il ressemble et il pourrait vous aider à tirer une solution sur votre propre:
<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
Voici un shader désature (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);
}
Compile et ajouter le fichier .ps comme une ressource, puis l'envelopper comme ceci:
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);
}
}
}
ensuite, vous pouvez l'utiliser en XAML comme celui-ci, la force est bindable si np le brancher à activé via la gâchette:
<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>
Questions connexes
- 1. Image sur un bouton
- 2. Y at-il une bibliothèque qui colle un bouton de zoom avant/arrière sur une image et permet + et -
- 3. WPF: Comment créer un "modèle" de bouton qui applique un style et contient une image?
- 4. Y at-il un moyen de savoir qui est le débogage à distance sur Glassfish?
- 5. Existe-t-il un moyen de tester un contrôle désactivé?
- 6. Y at-il un moyen de tuer une boucle setInterval à travers un bouton OnClick
- 7. Y a-t-il un moyen de désactiver une étiquette?
- 8. Java Swing; est-il un moyen en cliquant sur un bouton, une fenêtre apparaît à côté de ce bouton
- 9. Y at-il un moyen de faire une boîte de sélection déroulant en cliquant sur un bouton
- 10. Ajouter un bouton à une image
- 11. Existe-t-il un moyen de mosaïquer une image d'arrière-plan sur un chemin de canevas?
- 12. comment puis-je afficher une image sur le bouton qui est présenté sur UINavigationController iphone?
- 13. Y a-t-il un moyen de savoir qui détient une référence à un objet?
- 14. est-il un moyen de détecter le bouton poussoir physique sur un Droid X?
- 15. Y at-il un moyen de cliquer sur le bouton dans jquery ui?
- 16. Y a-t-il un moyen de dire combien d'une image est déjà chargée?
- 17. WPF: Bouton qui est un chemin
- 18. Comment un bouton désactivé peut-il être touché?
- 19. Est-il possible de mettre une image d'une URL dans un bouton image dans Android?
- 20. Bouton désactivé .. Mais
- 21. Y at-il un plugin jQuery qui me permet de "superposer" du texte sur une image, via un fond transparent?
- 22. Comment afficher l'état désactivé pour un bouton jqueryui?
- 23. Y at-il un moyen de créer un itérateur Linq XElement qui est mis à jour lorsque l'arbre est modifié?
- 24. WP7 Désactivé Style de bouton
- 25. Sur un périphérique Windows Mobile, quel est le meilleur moyen d'afficher un bouton OK au lieu du bouton X?
- 26. permettant une image submital désactivé avec javascript
- 27. Quel est le moyen le plus rapide de dessiner une image sur une autre image?
- 28. Comment faire un bouton "J'aime" sur Facebook qui est juste un lien, pas un iFrame?
- 29. UI Question, Devrait-il y avoir un moyen et un seul moyen de fermer le formulaire?
- 30. Existe-t-il un moyen d'empêcher un bouton de dessiner un contour lorsqu'il est sélectionné?