我希望StackPanel中的所有按钮都具有相同的样式。
是否有与HTML/CSS类似的可能性?
例如,这使得 HTML 中div 中所有按钮的文本都带有类 myBox 蓝色:
.CSS
.myBox Button{
color: blue;
}
.HTML
<div class="myBox">
<button type="button">1</button>
<button type="button">2</button>
<button type="button">3</button>
</div>
当我现在有了这个堆栈面板时,我怎样才能使所有按钮文本变成蓝色?
<StackPanel Orientation="Vertical" x:Name="ManagerMenu">
<Button x:Name="1" Content="1" />
<Button x:Name="2" Content="2" />
<Button x:Name="3" Content="3" />
</StackPanel>
您可以通过在
堆栈面板中放置默认(= 不带 x:Key(按钮样式来执行此操作:
<StackPanel Orientation="Vertical" x:Name="ManagerMenu">
<StackPanel.Resources>
<Style TargetType="Button">
<Setter Property="Foreground" Value="Blue" />
...
</Style>
</StackPanel.Resources>
<Button x:Name="1" Content="1" />
<Button x:Name="2" Content="2" />
<Button x:Name="3" Content="3" />
</StackPanel>
但是您可能希望将其基于按钮的预先存在的样式,否则它看起来会相当平坦。
您可以创建一个资源标签,然后将其用于多个元素。看看这个。https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/styling-controls
如果要
使用现有样式并将其应用于所有按钮:
<StackPanel>
<StackPanel.Resources>
<Style TargetType="Button" BasedOn="{StaticResource MyButtonStyle}"/>
</StackPanel.Resources>
<Button x:Name="1" Content="1" />
<Button x:Name="2" Content="2" />
<Button x:Name="3" Content="3" />
</StackPanel>