Dans JS, je voudrais simplement modifier l'URL de ressource pour l'image. Y a-t-il un moyen dans SL4 d'appliquer un effet à l'image pour le rendre grisâtre ou quelque chose pour indiquer que la commande est désactivée? Les images sont au format png.Silverlight: Quel est le moyen le plus simple d'afficher les icônes désactivées dans silverlight?
Répondre
Chaque Control
dans Silvelright a une propriété IsEnabled. Cela peut être utilisé pour définir un état activé/désactivé qui peut ensuite être stylé en tant que tel dans XAML (couche sur le bouton pour signaler qu'il est désactivé par exemple). Image
ne dérive cependant pas de Control
et n'a donc pas la propriété IsEnabled
.
Vous pouvez soit créer une classe personnalisée Image
qui prendra soin d'appliquer le dit comportement en utilisant le VisualStateManager.
Vous pouvez également créer un UserControl
personnalisé qui peut encapsuler le comportement que vous recherchez; faire usage des deux images et basculer entre elles en fonction d'une propriété exposée; c'est-à-dire ... IsEnabled.
Vous pouvez également utiliser la route Image.Source comme vous l'avez fait dans JS qui va changer l'image affichée; pousser la logique ailleurs et ensuite changer la source dans le code derrière.
Sinon, vous pouvez envelopper l'image dans un contrôle de lien hypertexte (en supposant que vous devez gérer un événement de clic), et définissez la propriété IsEnabled du lien:
<HyperlinkButton x:Name="btnSave" Click="btnSave_Click" IsEnabled="False">
<Image Source="/YourNamespace;component/Images/Icons/Save.png" Stretch="Fill"/>
</HyperlinkButton>