直接子级的样式
Styling for direct children
给出这个例子XAML:
<TabControl>
<TabItem Header="Test">
<Grid> <!-- outer grid that should receive the styles -->
<Grid.RowDefinitions><!-- ... --></Grid.RowDefinitions>
<Grid.ColumnDefinitions><!-- ... --></Grid.ColumnDefinitions>
<Grid Grid.Row="1" Grid.Column="1">
<!-- inner grid, should NOT receive the styles -->
</Grid>
</Grid>
</TabItem>
</TabControl>
如何为 TabItem
的所有直接 Grid
子级设置样式,而不设置层次结构中更深层的其他 Grid
的子级?
这是我尝试过的(我把它放在 App.xml
中):
<Style TargetType="TabItem">
<Style.Resources>
<Style TargetType="Grid">
<Setter Property="Margin" Value="10" />
</Style>
</Style.Resources>
</Style>
(我知道我可以使用 Style={StaticResource ...}
分配某些样式,但我必须将它单独应用于所有 Grid
,这似乎有很多不必要的代码......)
How can I style all direct Grid
children of the TabItem
and no other Grid
's deeper in the hierarchy?
通过以一种或另一种方式为所有外部 Grid
元素显式设置 Style
属性。
例如,您可以创建一个自定义 Grid
类型,将 Style
应用于:
public class OuterGrid : Grid { }
XAML:
<Style TargetType="local:OuterGrid">
<Setter Property="Margin" Value="10" />
</Style>
...
<local:OuterGrid>
<!-- outer grid that should receive the styles -->
<Grid Grid.Row="1" Grid.Column="1">
<!-- inner grid, should NOT receive the styles -->
<TextBlock>inner</TextBlock>
</Grid>
</local:OuterGrid>
或指定自定义的默认值 Grid
而不使用 Style
:
public class OuterGrid : Grid
{
public OuterGrid()
{
Margin = new Thickness(10);
}
}
恐怕XAML中没有CSS子选择器(>
)的概念。
给出这个例子XAML:
<TabControl>
<TabItem Header="Test">
<Grid> <!-- outer grid that should receive the styles -->
<Grid.RowDefinitions><!-- ... --></Grid.RowDefinitions>
<Grid.ColumnDefinitions><!-- ... --></Grid.ColumnDefinitions>
<Grid Grid.Row="1" Grid.Column="1">
<!-- inner grid, should NOT receive the styles -->
</Grid>
</Grid>
</TabItem>
</TabControl>
如何为 TabItem
的所有直接 Grid
子级设置样式,而不设置层次结构中更深层的其他 Grid
的子级?
这是我尝试过的(我把它放在 App.xml
中):
<Style TargetType="TabItem">
<Style.Resources>
<Style TargetType="Grid">
<Setter Property="Margin" Value="10" />
</Style>
</Style.Resources>
</Style>
(我知道我可以使用 Style={StaticResource ...}
分配某些样式,但我必须将它单独应用于所有 Grid
,这似乎有很多不必要的代码......)
How can I style all direct
Grid
children of theTabItem
and no otherGrid
's deeper in the hierarchy?
通过以一种或另一种方式为所有外部 Grid
元素显式设置 Style
属性。
例如,您可以创建一个自定义 Grid
类型,将 Style
应用于:
public class OuterGrid : Grid { }
XAML:
<Style TargetType="local:OuterGrid">
<Setter Property="Margin" Value="10" />
</Style>
...
<local:OuterGrid>
<!-- outer grid that should receive the styles -->
<Grid Grid.Row="1" Grid.Column="1">
<!-- inner grid, should NOT receive the styles -->
<TextBlock>inner</TextBlock>
</Grid>
</local:OuterGrid>
或指定自定义的默认值 Grid
而不使用 Style
:
public class OuterGrid : Grid
{
public OuterGrid()
{
Margin = new Thickness(10);
}
}
恐怕XAML中没有CSS子选择器(>
)的概念。