簡體   English   中英

無法更改Button的背景圖片

[英]Can't change Button's background image

我的按鈕控制有問題。 當我將鼠標懸停在它上面時,按鈕的圖像丟失了。 但是,當鼠標離開時,圖像會返回。 當鼠標懸停為真時,我想保留圖像。

這是鼠標結束時

在此處輸入圖片說明

這是正常狀態

在此處輸入圖片說明

這是我的代碼

 <Button Name="miliage_btn" Canvas.Left="775" Canvas.Top="57" Width="239" Height="80" Click="Button_Click" >
                    <Button.Background>
                        <ImageBrush ImageSource="D:\남경현\로드오브다이스 시뮬/pack0.jpg">
                        </ImageBrush>
                    </Button.Background>
                </Button>

我嘗試這段代碼

<Button.Style>
                        <Style TargetType="Button">
                            <Style.Triggers>
                                <Trigger Property="IsMouseOver" Value="true">
                                    <Setter Property="Background">
                                        <Setter.Value>
                                            <ImageBrush ImageSource="D:\남경현\로드오브다이스 시뮬/1회뽑기.png"/>
                                        </Setter.Value>
                                    </Setter>
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </Button.Style>

可以用xaml或c#修復嗎?

創建控件樣式時,需要考慮一些事項。

首先,在聲明觸發器時,不得直接在控件上設置該觸發器中任何設置器的target屬性(就像您直接分配Button.Background )。 相反,還必須由“設置員”在“樣式”中設置。 原因在依賴屬性值優先級中進行了說明

其次,按鈕的默認ControlTemplate顯示鼠標懸停時的可視覆蓋層,該覆蓋層覆蓋背景。 您應該通過聲明自己的ControlTemplate來替換它。

與其從絕對文件路徑加載圖像,不如考慮將圖像文件添加到Visual Studio項目中(例如,在名為Images的文件夾中),並將其Build Action設置為Resource

<Button Content="Hello">
    <Button.Style>
        <Style TargetType="Button">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Border Background="{TemplateBinding Background}"
                                BorderBrush="{TemplateBinding BorderBrush}"
                                BorderThickness="{TemplateBinding BorderThickness}">
                            <ContentPresenter
                                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Setter Property="Background">
                <Setter.Value>
                    <ImageBrush ImageSource="Images/StandardBackground.png"/>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background">
                        <Setter.Value>
                            <ImageBrush ImageSource="Images/MouseOverBackground.png"/>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Button.Style>
</Button>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM