我可能錯過了WPF的一些顯而易見的東西,但是有可能創建符合目標控件的子控件分層次工作的樣式嗎?爲了更好地解釋,請考慮CSS如何對HTML進行樣式設計。您可以通過選擇層次目標與CSS控制:WPF樣式階層?
div > span em
{
color: blue;
}
ul.class > li ul li
{
display: block;
margin: 0px;
}
是否有可能實現與WPF風格是一回事嗎?到目前爲止,我一直在爲每種類型的控件創建樣式,或者直接將其應用於控件的命名樣式。然而,我最終的風格比我真正打算的要多得多,我幾乎不可能將控制結構組合在一起。
感謝您的任何見解。
UPDATE:
這裏是我想什麼,能夠做一個例子。請注意,只有根ListView控件應用了一個Style。我希望能夠針對任何一個CellTemplates中的任何一個子控件,而無需直接將樣式應用於每個這些子控件。這使得我的視圖佈局標記與風格標記更加分離和隔離,給我更多的自由來改變風格,而無需爲整個應用程序中的每個控件都明確地創建風格。
<Grid>
<ListView Style="{StaticResource ProcessableItemsListView}">
<ListView.View>
<GridView>
<GridViewColumn Width="10">
<GridViewColumn.CellTemplate>
<Grid>
<CheckBox Value="{Binging ...}" />
</Grid>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="*">
<GridViewColumn.CellTemplate>
<Grid>
<TextBlock Text="{Binding ...}" />
</Grid>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="80">
<GridViewColumn.CellTemplate>
<Grid>
<Button Command="{Binding ...}">Process</Button>
</Grid>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="120">
<GridViewColumn.CellTemplate>
<Grid>
<ProgressBar Value="{Binding ...}" />
</Grid>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListBiew>
</Grid>
稍遲,但請參閱http://www.codeproject.com/Articles/36499/Using-CSS-Selectors-for-Styling-in-WPF – 2011-10-20 12:42:38
@BorisB。謝謝!棒極了! – jrista 2011-10-22 02:50:07