Modifier l'Image du Bouton Sur le vol Stationnaire ou Cliquez sur
Comment puis-je changer l'image de fond d'un Bouton sur le vol Stationnaire et au Clic? Le Visual Studio, l'INTERFACE utilisateur ne semblent pas fournir un moyen facile de le faire. Actuellement, le comportement par défaut semble remplacer mon image avec une couleur unie, qui a l'air vraiment mauvais.
Tout ce que j'ai à ce jour est le Bouton de la base:
<Button Content="" Height="75" VerticalAlignment="Center" Width="75" HorizontalAlignment="Center" ClickMode="Press">
<Button.Background>
<ImageBrush ImageSource="../data/images/icons/skill_icon_0.png"/>
</Button.Background>
</Button>
J'ai essayé de gérer les événements et le paramétrer manuellement, mais il ne fonctionne pas pour Enfoncée/Relâchée:
Button skillButton = new Button();
skillButton.Width = 75;
skillButton.Height = 75;
skillButton.ClickMode = ClickMode.Press;
skillButton.Background = GetIconImage(iconIndex, 0);
skillButton.PointerEntered +=
(object sender, Windows.UI.Xaml.Input.PointerEventArgs e) => {
skillButton.Background = GetIconImage(iconIndex, 1);
};
skillButton.PointerExited +=
(object sender, Windows.UI.Xaml.Input.PointerEventArgs e) => {
skillButton.Background = GetIconImage(iconIndex, 0);
};
skillButton.PointerPressed +=
(object sender, Windows.UI.Xaml.Input.PointerEventArgs e) => {
skillButton.Background = GetIconImage(iconIndex, 2);
};
skillButton.PointerReleased +=
(object sender, Windows.UI.Xaml.Input.PointerEventArgs e) => {
if (skillButton.FocusState == FocusState.Pointer)
skillButton.Background = GetIconImage(iconIndex, 1);
else skillButton.Background = GetIconImage(iconIndex, 0);
};
OriginalL'auteur Nick Banks | 2012-05-09
Vous devez vous connecter pour publier un commentaire.
J'ai fini par l'édition de la ControlTemplate juste de créer et de modifier la Frontière. Mais il pourrait être utilisé pour changer l'image trop.
OriginalL'auteur Nick Banks
Vous êtes à peu près là. Vous pouvez toujours appliquer une semi-transparent de couleur sur le dessus de votre image en dessous de votre texte/contenu, mais puisque vous avez demandé pour le changement de la totalité de l'image, voici ce que vous pouvez faire:
Dans Visual Studio 2012, si vous avez déjà un bouton pour la plupart de style/configuré de manière à ce que vous voulez, cliquez droit dessus, Modifier le Modèle -> Modifier une Copie. Choisissez l'emplacement où vous souhaitez placer le nouveau style/modèle. C'est comme de choisir où mettre le CSS. Peut être dans un fichier global (App.xaml ou StandardStyle.xaml) ou dans l'en-tête (ressources de la page) ou en ligne (contrôle des ressources).
Ci-dessous XAML est peut-être trop simplifié et ne pas travailler, mais c'est l'idée d':
Maintenant, vous pouvez placer vos 3 images dans les 3
<Image>
balises et depuis le ContentPresenter est sur le dessus, lorsque vous utilisez le modèle avec<Button Template="{StaticResource MyButton}">
, vous pouvez toujours mettre du contenu et il apparaîtra sur le dessus de votre image d'arrière-plan. Ou, vous pouvez juste avoir une interface graphique bouton avec les images trop.OriginalL'auteur xster
L'INTERFACE utilisateur windows XAML toolkit a maintenant cette fonctionnalité:
Image de Bouton à Bascule et le Bouton Image
Utiliser le gestionnaire de package de la console de commande "Install-Package winrtxamltoolkit" dans visual studio 2012 pour installer le kit... C'est vraiment utile pour beaucoup de choses.
OriginalL'auteur Gary95054
Ici est un style qui tourne visibilité sur et en dehors de quelques images supplémentaires que vous ajoutez dans le Mélange. Les images sont transparentes et allez derrière le bouton image d'arrière-plan en utilisant la fonction "Envoyer à Dos" .. donc, en d'autres termes, vous arrivez à garder, à l'aide d'une image de fond différente pinceau pour chaque bouton, plus le échangé Normal, Pointeur, et Appuyé sur des images. Donc deux images de fond superposées.
OriginalL'auteur Gary95054
Utiliser ce Code dans Pointer_Entered Événement sur le Bouton et ça marche 🙂
Comme je sais que oui 🙂 mais peut être il y a une autre solution mais je ne l'ai jamais vu 🙂
Je l'ai essayé, et ça marche pour entrer et sortir, mais en appuyant et en relâchant ne fonctionne pas.
OriginalL'auteur Ibraheem Osama
La raison pour laquelle le += pour PointerPressed /PointerReleased ne fonctionne pas dans votre code original est parce que le Bouton (en fait ButtonBase) de classe gère ces événements. C'est parce qu'ils sont consolidés dans l'événement Click (à la Libération). Si vous avez utilisé skillButton.AddHandler avec le premier param PointerPressedEvent, deuxième paramètre un nouveau gestionnaire de référence d'un gestionnaire nommé, et la troisième param vrai, vous pourriez être en utilisant PointerPressed plutôt que de les Entrés/Sortis de la manifestation.
OriginalL'auteur Wolf Schmidt-MSFT