0
我想将样式应用于多个扩展器,它们将具有相似的外观和功能。但问题是,如果我的风格Expander.Content只有一个会有内容,其余都是空的。Expander.Content只适用于一个
小例子:
<Style TargetType="Expander" BasedOn="{StaticResource {x:Type Expander}}">
<Setter Property="Header">
<Setter.Value>
Header
</Setter.Value>
</Setter>
<Setter Property="Content">
<Setter.Value>
<TextBlock Text="1"/>
</Setter.Value>
</Setter>
</Style>
<!-- .... -->
<Expander Grid.Row="0"/>
<Expander Grid.Row="1"/>
<Expander Grid.Row="2"/>
,你只看到第二排在设计时(1)内容。在运行期间,只有最后一个扩展器有内容(1)。
如果我点击第一个扩展器,第三个扩展器的内容(1)实际上移动到第一个扩展器。
这是怎么发生的?以及如何解决它?
为什么Header创建3个实例,但只有一个用于内容? – Steve
@Steve:因为你将它设置为字符串“Header”,它不是*可视元素*(不同于“TextBlock”)。 –
所以所有样式都只创建一个实例,并将其应用于所有元素。如果我想在样式中使用可视元素,但希望它们在元素之间不同,请使用模板。我的理解是否正确 – Steve