Ändern Sie die Schaltfläche Bild Auf Hover oder Klick
Wie ändere ich das Hintergrundbild von einer Taste auf Hover-und Klick? Die Visual Studio-Benutzeroberfläche offensichtlich nicht bieten eine einfache Möglichkeit, es zu tun. Derzeit das Standard-Verhalten scheint zu ersetzen, die mein Bild mit einer Farbe, die sieht wirklich schlecht.
Alles, was ich habe, so weit ist die Taste Basis:
<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>
Habe ich versucht, Ereignisse zu behandeln und manuell einzustellen, aber es funktioniert nicht für Gedrückt/Losgelassen:
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);
};
InformationsquelleAutor Nick Banks | 2012-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Landete ich Bearbeiten das ControlTemplate nur zum erstellen und ändern der Rahmen. Aber es könnte verwendet werden, um das Bild zu ändern auch.
InformationsquelleAutor Nick Banks
Bist du ziemlich viel es. Sie können immer eine semi-transparente Farbe auf dein Bild unter deinen text/Inhalt, aber da fragte man zum ändern das gesamte Bild, hier ist was Sie tun können:
In Visual Studio 2012, wenn Sie bereits über eine Taste, meist gestylt/konfiguriert, was Sie wollen, der rechten Maustaste, Bearbeiten, Template -> Bearbeiten Sie eine Kopie. Wählen Sie aus, wo Sie wollen, um die neue Formatvorlage/Vorlage. Es ist wie Kommissionierung, wo die CSS. Könnte in einer globalen Datei (App.xaml oder im StandardStyle.xaml) oder in der Kopfzeile (Seite Ressourcen) oder inline (Kontrolle von Ressourcen).
Den unten XAML möglicherweise zu stark vereinfacht und nicht die Arbeit, sondern es ist die Idee:
Nun können Sie Ihr 3 Bilder in der 3
<Image>
tags und seit dem ContentPresenter ist auf der Oberseite, wenn Sie die Vorlage mit<Button Template="{StaticResource MyButton}">
können Sie immer noch Inhalte und es erscheint auf Ihrem Hintergrundbild. Oder Sie können einfach nur einen grafischen button mit den Bildern zu.InformationsquelleAutor xster
Den windows-UI-XAML toolkit hat nun diese Funktionalität:
Image-Taste und Toggle-Button-Bild
Verwenden Sie den Paket-manager-Konsole mit dem Befehl "Install-Package winrtxamltoolkit" in visual studio 2012 zu installieren das toolkit... Es ist wirklich für viele Dinge nützlich.
InformationsquelleAutor Gary95054
Hier ist ein Stil, stellt die Sichtbarkeit ein-und ausschalten für einige zusätzliche Bilder, die Sie hinzufügen, in die Mischung. Die Bilder sind transparent und gehen hinter der Schaltfläche hintergrund Bild verwenden Sie die "Send to Back" .. also in anderen Worten, Sie erhalten, um mit einem anderen hintergrund "Bild" für jede Taste, plus die vertauscht Normal, Zeiger und Drückte die Bilder. Also zwei hintergrund-Bilder überlagert.
InformationsquelleAutor Gary95054
Verwenden Sie diesen Code in Pointer_Entered Ereignis auf die Schaltfläche, und es wird funktionieren 🙂
Ich weiß ja :), aber vielleicht gibt es eine andere Lösung, aber ich sah es nie 🙂
Ich versuchte es, und es funktioniert für enter und exit, aber das drücken und loslassen funktioniert nicht.
InformationsquelleAutor Ibraheem Osama
Den Grund des + = - für PointerPressed /PointerReleased funktioniert nicht in deinem ursprünglichen code ist, weil die Schaltfläche (eigentlich ButtonBase) Klasse-die Verarbeitung dieser Ereignisse. Das ist, weil Sie konsolidiert in das Click-Ereignis (on Release). Wenn Sie skillButton.AddHandler mit dem ersten param PointerPressedEvent, zweiten Parameter eine neue handler-Verweis auf eine benannte handler, und der Dritte Parameter true ist, die Sie verwenden können, PointerPressed eher als die Eingegebene/Beendet die Veranstaltung.
InformationsquelleAutor Wolf Schmidt-MSFT