2012-12-18 90 views
0

我已經創建了一個自定義按鈕,它上面有一個布爾標誌來表示它是否被選中。如果選擇了我想更改按鈕的背景顏色,以便用戶快速瞭解他們正在查看的控件。問題是我無法讓觸發器正常工作。我在這裏看到的所有東西,我已經嘗試過,但是在我的代碼的InitializeComponent部分中仍然出現錯誤。爲自定義屬性設置觸發器WPF

下面是我處理的

Private mIsSelected As Boolean = False 
Public Property IsSelected() As Boolean 
    Get 
     Return mIsSelected 
    End Get 
    Set(ByVal value As Boolean) 
     mIsSelected = value 
    End Set 
End Property 


Public Shared ReadOnly MyBackgroundProperty As DependencyProperty = DependencyProperty.Register("MyBackground", 
                           GetType(LinearGradientBrush), GetType(RentAdjButtons), 
                            New PropertyMetadata(New LinearGradientBrush(ColorConverter.ConvertFromString("#3366CC"), ColorConverter.ConvertFromString("#0000FF"), New System.Windows.Point(0.5, 0), New System.Windows.Point(0.5, 1)))) 


Private mMyBackground As New LinearGradientBrush 
Public Property MyBackground() As LinearGradientBrush 
    Get 
     Return mMyBackground 
    End Get 
    Set(ByVal value As LinearGradientBrush) 
     mMyBackground = value 
    End Set 
End Property 

屬性,這裏是我的XMAL

<Style TargetType="Com:RentAdjButtons"> 
      <Setter Property="MyBackground" Value="{StaticResource DefaultBackground}" /> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="MyBackground" Value="{StaticResource SelectedButton}" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 

目前我得到的錯誤是「屬性不能爲空就觸發」

預先感謝您的幫助

+0

您的IsSelected屬性也應該是一個DependencyProperty –

回答

1

您可以使用ToggleButton wh ich默認具有此屬性。

+0

感謝您切換按鈕我最後的建議使用該控件重建用戶控件 – Bryan

+0

很高興幫助:) – user1064519

0

Trigger.Property必須是DependencyProperty才能觸發工作。有關文檔,請參閱MSDN。您需要將您的班級資源IsSelected更改爲DependencyProperty

此外,由於使用MSDNSetValueGetValue中記錄爲MyBackground您的getter/setter應該定義:

​​