2015-05-12 20 views
0

我有這套資源,我用它來創建按鈕樣式,當鼠標懸停,點擊和空閒狀態時,按鈕樣式會改變按鈕上的圖像。使用城域按鈕創建按鈕樣式

<Window.Resources> 
     <Image x:Key="LoginIdle" Source="/content/images/btn-login-idle.png" /> 
     <Image x:Key="LoginHover" Source="/content/images/btn-login-hover.png" /> 
     <Image x:Key="LoginActive" Source="/content/images/btn-login-active.png" /> 

     <Style x:Key="LoginButtonStyle" TargetType="{x:Type Button}"> 
      <Setter Property="OverridesDefaultStyle" Value="True"/> 
      <Setter Property="Content" Value="{StaticResource LoginIdle}"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsMouseOver" Value="True"> 
           <Setter Property="Background" Value="{DynamicResource LoginIdle}"/> 
          </Trigger> 
          <Trigger Property="IsPressed" Value="True"> 
           <Setter Property="Background" Value="{DynamicResource LoginActive}"/> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Window.Resources> 

我試着放在按鈕上。

<Button Style="{DynamicResource LoginButtonStyle}" Name="LoginButton" Click="LoginBtn_Click"> 
    </Button> 

問題是,圖像不存在。

我也嘗試設置按鈕上的內容值,只是改變後端代碼上的圖像,但是當我嘗試使背景透明時,我的圖像周圍有一個邊框。我認爲這是因爲按鈕的自然行爲。不太確定。

enter image description here

總之,我要做到的是徘徊,按下和離開按鈕時的按鈕,改變圖像上添加一個空閒圖像

回答

0

所有的圖像都不在那裏嗎?還是隻有空閒的?

如果只有空閒圖像不存在,是否嘗試在觸發器之前設置背景屬性而不是Content屬性?並使用像你的觸發器一樣的動態資源?

+0

我根本看不到任何圖像。我甚至試圖徘徊它。 – ljpv14

+0

嘗試使用ImageBrush而不是Image。你確定你的圖片有正確的路徑嗎? – mgarant

+0

嘗試將內容更改爲我的setter上的背景。仍然沒有圖像。我很確定這個路徑,因爲當我嘗試使用靜態資源和映像鍵設置按鈕的內容值時。圖像顯示在我的文章中看到。我在wpf上比較新。將使用ImageBrush快速搜索。感謝您的建議。 – ljpv14

0

對於那些對我的問題的答案感興趣的人。做了額外的研究。我發現我需要在ControlTemplate中添加這一行。

<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 

然後所有的觸發器都能正常工作。