2010-10-13 44 views

回答

1

您可以在ControlTemplate中使用Trigger,並使用Trigger.SourceName屬性將ToggleButton指定爲觸發源。

例子:

<ControlTemplate ... > 
    <Grid ... > 
     <!-- ... --> 
     <ToggleButton x:Name="btnToggle" ... /> 
     <!-- ... --> 
    </Grid> 

    <ControlTemplate.Triggers> 
     <Trigger SourceName="btnToggle" Property="IsChecked" Value="True"> 
      <Setter Property="Foreground" Value="Red" /> 
     </Trigger> 
    </ControlTemplate.Triggers> 
</ControlTemplate> 

當然,這僅適用於性能,而不是事件,你的要求。但是,可以使用許多屬性代替事件,如IsChecked屬性而不是Checked事件。

+0

欣賞你的答案。但是當它觸發時,我希望Combobox的屬性被改變(像不透明或前景)而不是togglebutton的屬性。無論如何,從togglebutton引用組合框? – funwithcoding 2010-10-14 04:14:42

+0

其實,我認爲上面的代碼會將ComboBox的'Foreground'設置爲'Red'而不是'ToggleButton'。 *您是否嘗試過代碼?*通常,如果您在「設置器」中未指定「TargetName」,則將其應用於模板化控件,本例中爲「ComboBox」。但是,如果使用'Trigger'的'SourceName'屬性,這可能不會成立。但是,如果你還沒有這樣做,你還是應該試一試! – gehho 2010-10-14 05:46:19

相關問題