2012-09-09 130 views
0

我有另外一個問題,我的用戶控件的XAML文件-.-」無法風格觸發屬性設置爲自定義依賴屬性

工作時,我試圖執行一個IsChecked屬性爲我的自定義按鈕,以設置不同背景顏色,如果按鈕被選中。

所以我創建了一個DependencyProperty這樣的:

public static readonly DependencyProperty IsCheckedProperty = DependencyProperty.Register("IsChecked", typeof(bool), typeof(LeftMenuBtn)); 

public bool IsChecked 
{ 
    get { return (bool)GetValue(IsCheckedProperty); } 
    set { SetValue(IsCheckedProperty, value); } 
} 

然後,我建立一個新的樣式觸發器來處理這個屬性:

<Style x:Key="ButtonEnableStates" TargetType="{x:Type Grid}"> 
    <Style.Triggers> 
     <Trigger Property="IsChecked" Value="True"> 
      <Setter Property="Background" Value="{DynamicResource CheckedStateGradient}" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

的Expression Blend現在強調Property="IsChecked",並說:

The member "IsChecked" is not recognized or is not accessible.

我該如何解決這個問題?

回答

1

那麼,StyleTargetTypeGrid和屬性定義爲LeftMenuBtn,不會這樣工作。

+0

感謝您的回答。所以我試圖改變'typeof(LeftMenuBtn)'到'typeof(Grid)',但這不起作用? – TorbenJ

+2

@TorbenJonas:你不能像現有的類那樣添加屬性,但是你可以爲'LeftMenuBtn'註冊一個[附加屬性](http://msdn.microsoft.com/en-us/library/ms749011.aspx),並且在觸發器中使用'local:LeftMenuBtn.IsChecked'。 –

+0

好的謝謝你的鏈接去試試這個。對於這個愚蠢的問題感到抱歉,但是此刻整個觸發和財產主題對我來說有點混亂^^ – TorbenJ