我可能错过了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