日期:2014-05-17  浏览次数:21028 次

WPF,请问ListBox模板
ListBox模板,参照的MSDN:

<Style TargetType="ListBox">
...
...
</Style>

<Style TargetType="ListBoxItem">
...
...
</Style>



问题:
上面的模板,是所有ListBox都用相同的ListBoxItem的样式吧,如果我想listBox1用一种ListBoxItem样式,
listBox2用另一种ListBoxItem样式,该怎么写呢?

------解决方案--------------------
<Style TargetType="ListBox" x:Key="ListBoxStyle1">

加上key...
------解决方案--------------------
你定义的只是样式,如果你想实现你的需求,你需要在你的Listbox中指定你应用那个样式了,这样使用的Listbox就能应用这个样式,所以在定义的样式的时候要用key来区别定义的每个样式
------解决方案--------------------

<Style TargetType="ListBox" x:Key="ListBoxStyle1">
...
...
</Style>

<Style TargetType="ListBoxItem">
//1的样式
</Style>

<Style TargetType="ListBox" x:Key="ListBoxStyle2">
...
...
</Style>

<Style TargetType="ListBoxItem">
//2的样式
</Style>

<ListBox Style="{DynamicResource ListBoxStyle1}"/>
<ListBox Style="{DynamicResource ListBoxStyle2}"/>


我觉得应该是这样。
------解决方案--------------------
哦,看错

以为是


<Style TargetType="ListBox" x:Key="ListBoxStyle1">
...
...
<Style TargetType="ListBoxItem">
...
...
</Style>
</Style>


 

------解决方案--------------------

<Style TargetType="ListBoxItem" x:Key="ListBoxItemStyle1">
//1的样式
</Style>
 
<Style TargetType="ListBoxItem" x:Key="ListBoxItemStyle2">
//2的样式
</Style>
 
<ListBox ItemContainerStyle="{DynamicResource ListBoxStyle1}"/>
<ListBox ItemContainerStyle="{DynamicResource ListBoxStyle2}"/>


------解决方案--------------------