2010-05-24 84 views
0

我有應用模板到我的複選框麻煩。我有以下的模板:麻煩將一個簡單的模板

<ControlTemplate x:Key="TriStateRed" TargetType="{x:Type CheckBox}"> 
    <ControlTemplate.Triggers> 
     <Trigger Property="IsChecked" Value="{x:Null}" > 
      <Setter TargetName="path" Property="Data" Value="M 0 2.5 A 5 2.5 0 1 1 5 5 L 5 8 M 5 10 L 5 10" /> 
      <Setter TargetName="path" Property="Stroke" Value="Red" /> 
     </Trigger> 
    </ControlTemplate.Triggers> 
</ControlTemplate> 

然而,視覺工作室給了我以下錯誤:

Cannot find the Trigger target 'path'. (The target must appear before any Setters, Triggers, or Conditions that use it.)

任何人都可以理解這一點?

回答

0

它正在尋找一個名爲「路徑」的控件模板內的元件(控制)。你需要在ControlTemplate中有這樣的元素才能使這個觸發器工作。

0

,因爲你要創建一個在你的複選框邊框時是器isChecked空這是可能的,但你並沒有真正定義一個名爲「路徑」 Path元素。

0

這意味着WPF不知道什麼是Setters"path"

當您定義ControlTemplate這樣的觸發器時,您需要指定構成複選框的可視元素,然後命名其中一個元素"path",然後觸發器會知道它們應用於哪個元素。

這在我看來就像從MSDN雜誌文章示例代碼:Using Templates to Customize WPF Controls。如果是這樣的話,你必須使用圖1和圖2中的代碼來運行CheckBox。有代碼可供下載或在線瀏覽。這裏是複選框的模板:BigCheckBox.xaml

CheckBox ControlTemplate Example MSDN上。

此外,還要檢查這個StackOverflow的問題: