2017-12-18 361 views
-2

我在WPF中有一個按鈕,當按下按鈕時,它會產生一個外部效果。然而,當按鈕沒有被按下時,效果發生,只有按下按鈕時,我會如何使效果發生?WPF - 按下按鈕時的外部效果

這是我的XAML:

<Button.Effect> 
    <DropShadowEffect 
    BlurRadius="20" ShadowDepth="0" Color="DarkBlue"> 
    </DropShadowEffect> 
</Button.Effect> 


</Button> 

這是我編輯的代碼:

<Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="147,131,0,0" VerticalAlignment="Top" Width="75" PreviewMouseDown="button_PreviewMouseDown"> 

      <Style x:Name="Triggers" TargetType ="Button"> 
       <Style.Triggers> 
        <Trigger Property="IsPressed" Value="true"> 
         <Button.Effect> 
          <DropShadowEffect 
      BlurRadius="20" ShadowDepth="0" Color="DarkBlue"> 
          </DropShadowEffect> 
         </Button.Effect> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 


     </Button> 

誰能告訴我,爲什麼它不工作?

編輯:

<menu:HomeButton x:Name="BtnHome" PreviewMouseDown="BtnHome_PreviewMouseDown" TouchDown="BtnHome_TouchDown" > 
       <Button.Style> 
        <Style TargetType="Button"> 
         <Style.Triggers> 
          <Trigger Property="IsPressed" Value="true"> 
           <Setter Property="Effect"> 
            <Setter.Value> 

             <DropShadowEffect 
     BlurRadius="20" ShadowDepth="0" Color="DarkBlue"/> 
            </Setter.Value> 
           </Setter> 


          </Trigger> 
         </Style.Triggers> 
        </Style> 
       </Button.Style> 
      </menu:HomeButton> 
+0

你想讓它更改按壓持續時間,還是你想讓它保持開啓/關閉狀態? –

+0

從片段中我相信你已經直接添加了效果,這意味着它總是會有效果。你已經在觸發器中添加了這個代碼,例如EventTrigger。查看示例http://www.tutorialspoint.com/wpf/wpf_triggers.htm – AsitK

+0

我只希望在按下按鈕時發生效果。我嘗試添加屬性,但它不起作用 –

回答

2

可以使用Style屬性和觸發IsPressed

<Button Content="Button"> 
    <Button.Style> 
     <Style TargetType="Button"> 
      <Style.Triggers> 
       <Trigger Property="IsPressed" Value="True"> 
        <Setter Property="Effect"> 
         <Setter.Value> 
          <DropShadowEffect BlurRadius="20" ShadowDepth="0" Color="DarkBlue"/> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 
</Button> 

借鑑https://stackoverflow.com/a/46279626/6741868

+0

你可以看看我編輯的代碼:它是一樣的,但不起作用 –

+0

嗯,我能想到的唯一區別是'true'改爲'True',你可以試試看它是否有效。如果沒有,是否出現錯誤或按下時不顯示陰影? –

+0

樣式元素應該放在中,而不是像CookiMonster和中的值那樣引導孩子,如Keyur Patel所示 – AsitK