2010-12-17 78 views
3

我想設置一個按鈕,所以只有當鼠標經過它時, 按鈕纔會將其視覺屬性更改爲啓用按鈕。使用觸發器設置按鈕IsEnabled在鼠標上爲true

這是我的代碼:

<Button Foreground="Black" Content="OK" Margin="186,100,170,172" > 
     <Button.Style> 
      <Style TargetType="Button"> 
       <Setter Property="IsEnabled" Value="False" /> 
       <Style.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="IsEnabled" Value="True" /> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </Button.Style> 
    </Button> 

在此先感謝您的幫助。

+0

這是否下班後?我認爲它應該:S – Machinarius 2010-12-17 16:03:22

回答

5

您可以封裝你的按鈕在邊框讓你在做什麼

<Border Name="buttonBorder" Margin="186,100,170,172" 
     Background="#01000000" BorderBrush="Transparent" BorderThickness="0"> 
    <Button Foreground="Black" Content="OK"> 
     <Button.Style> 
      <Style TargetType="Button"> 
       <Setter Property="IsEnabled" Value="False" /> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding ElementName=buttonBorder, Path=IsMouseOver}" Value="True"> 
         <Setter Property="IsEnabled" Value="True" /> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Button.Style> 
    </Button> 
</Border> 
+0

+1我沒有想到這一點。 – 2010-12-17 16:25:13

2

我不認爲這是可能的,你想在這裏做什麼,因爲雖然按鈕被禁用,IsMouseOver是假的(也不會產生MouseMove或其他事件)。爲了達到你想要的效果(順便說一句,你爲什麼要在你將鼠標放在它上面時啓用禁用的按鈕?這很不自然......如果你想用鍵盤導航到按鈕,怎麼樣?這是不可能的,如果它被禁用),你應該重新調整按鈕,並使其看起來像鼠標沒有超過它的時候處於禁用狀態,並且當鼠標懸停時處於啓用狀態 - 但這需要一些工作)。

相關問題