WPF Button Mouseover Image

Uczę się C # i XAML, aby budować aplikacje Windows. Chciałem stworzyć przycisk z obrazem jako tłem. Ale po najechaniu na przycisk tło przycisku powinno zmienić się na inny „podświetlony” obraz. Próbowałem dodać obrazy tła do Resources.resx. Musiałem utworzyć niestandardowy przycisk, używając stylów xaml, aby pozbyć się domyślnego efektu podświetlenia przycisku wpf.

Stworzyłem niestandardowy przycisk z kodu znalezionego na SO. Kod jest (w nowym słowniku zasobów):

    <!-- This style is used for buttons, to remove the WPF default 'animated' mouse over effect -->
    <Style x:Key="StartMenuButtons" TargetType="Button">
        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Setter Property="Margin" Value="5"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Name="border" 
                        BorderThickness="0" 
                        Background="{TemplateBinding Background}">
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">


                        <!-- UPDATE THE BUTTON BACKGROUND -->
                        <Setter Property="Background" Value="WHAT GOES HERE"  TargetName="border"/>


                    </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Co mogę umieścić, aby tło zmieniło się na inny obraz, czy to w moich zasobach.resx, czy w innej lokalizacji? (Nie wiesz, gdzie umieścić obraz, aby uzyskać do niego dostęp). Szukałem SO, ale znalezione przeze mnie rozwiązania nie były dokładnie tym, z czym mam do czynienia. Jeśli jest to duplikat pytania, przepraszam.

Streszczenie:

Jak zmienić obraz tła przycisku na wyzwalaczu myszy w XAML? Gdzie mogę umieścić obraz, aby można było uzyskać do niego dostęp w kodzie wyzwalacza?

Aktualizacja To jest to, co umieściłem jako akcję wyzwalającą, ale obraz nie jest aktualizowany. Upewniłem się, że ustawiłem akcję budowania obrazu na zasób i umieściłem go w folderze o nazwieZasoby.

Kod to:

<ControlTemplate.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter Property="Background">
          <Setter.Value>
             <ImageBrush ImageSource="/Simon;component/Resources/btn_bg_hover.jpg" />
          </Setter.Value>
        </Setter>
     </Trigger>

Struktura plików to

Simon
    Simon
        Resources
            all the images
        Fonts
        bin
        obj
        Properties

Rozwiązanie

Poniżej znajduje się kompletny kod umożliwiający zmianę obrazu na przycisk myszy:

<!-- This style is used for buttons, to remove the WPF default 'animated' mouse over effect -->
    <Style x:Key="StartMenuButtons" TargetType="Button">
        <Setter Property="OverridesDefaultStyle" Value="True"/>
        <Setter Property="Margin" Value="5"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Name="border" 
                        BorderThickness="0" 
                        Background="{TemplateBinding Background}">
                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Background" TargetName="border">
                            <Setter.Value>
                                <ImageBrush ImageSource="Resources/btn_bg_hover.jpg" />
                            </Setter.Value>
                        </Setter>

                    </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Dla rzeczywistego obrazu umieściłem go wZasoby folder znajdujący się w katalogu głównym. Po zaimportowaniu tam obrazów za pomocą narzędzia zasobów w studio wizualnym zaktualizowałem obrazustawienia kompilacji doRatunek w panelu Właściwości.

Dzięki za rozwiązanie dbaseman

questionAnswers(2)

yourAnswerToTheQuestion