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