2009-03-05 71 views
2

ListBox的項目一個DataTemplate我想改變前景色時,我選擇了一個ListBoxItem,我做到了使用這段代碼:WPF觸發了IsSelected在與混合

<DataTrigger Binding="{Binding 
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="True"> 
          <Setter TargetName="descriptionTB" Property="Foreground" Value="#000"/> 
</DataTrigger> 

你可以找到答案here

但是,如果我想讓設計師在Blend中做到這一點,他如何在不鑽入xaml的情況下做到這一點?

謝謝

回答

2

阿圖爾,

觸發器設計師在Expression Blend中只允許添加和修改EventTriggers和財產觸發。我還沒有找到添加Blend的DataTriggers的方法。我也不確定如何使用Blend設置RelativeSource綁定。我一直將XAML代碼用於測試,並將Blend用於其他任何方面。

2

也許我誤解的問題,但你不能只創建descriptionTB一個樣式資源,讓設計人員只處理與風格定義,而不是綁定?

<DataTrigger Binding=".."> 
    <Setter TargetName="descriptionTB" Property="Style" Value="{StaticResource DescriptionTextBoxStyle}" /> 
</DataTrigger> 

在你的控制或窗口的資源部分添加樣式定義:

<Style TargetType="{x:Type TextBox}" x:Key="DescriptionTextBoxStyle"> 
    <Setter Property="Foreground" Value="#000" /> 
</Style> 

如果您想進一步從UI的力學隔離設計,你可以創建一個資源字典一個單獨的xaml文件,您可以在其中收集所有適用於設計人員的樣式。然後,您可以將該資源字典與控件或應用程序的主要資源合併。