我希望将
Padding="0"
应用到左侧侧边栏上的每个 Label
(即第一个 StackPanel
),以便它与每个 TextBox
(和其他控件)左对齐。
如何在 <ApplicationResources>
中定义一个隐式样式,仅适用于特定容器内的元素?
替代方案:
- 使用
x:Key="sidebarLabel"
。但是,在我的实际应用程序中,侧边栏中的许多标签使这个选项显得冗余。 - 在侧边栏中的每个
Label
上添加Padding=0
。这本质上与前一个替代方案相同。 - 将隐式样式移入
<StackPanel.Resources>
。但是,我想保持样式(在App.xaml
中)与 XAML(在MainWindow.xaml
中)分开。
<Application.Resources>
<Style TargetType="{x:Type Label}">
<Setter Property="Padding" Value="0" />
</Style>
</Application.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<GroupBox Header="New User">
<StackPanel>
<Label>First Name:</Label>
<TextBox/>
<Label>Last Name:</Label>
<TextBox/>
</StackPanel>
</GroupBox>
</StackPanel>
<GroupBox Grid.Column="1" Header="Main">
<StackPanel>
<Label>I want default padding here</Label>
</StackPanel>
</GroupBox>
</Grid>