以相同的方式设置StackPanel中的所有按钮(UWP)

时间:2017-02-05 12:34:46

标签: c# xaml uwp uwp-xaml

我希望StackPanel中的所有按钮都具有相同的样式。

是否存在类似于HTML / CSS的可能性?

例如,这在HTML中使用myBox blue:

类在div中的所有按钮的文本

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时,如何将所有Button文本设为蓝色?

<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>

3 个答案:

答案 0 :(得分:4)

您可以通过在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>

但您可能希望将其基于预先存在的按钮样式,或者看起来相当平坦。

答案 1 :(得分:1)

您可以创建资源标记,然后将其用于多个元素。 看看这个。 https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/styling-controls

答案 2 :(得分:0)

如果要使用现有样式并将其应用于所有按钮:

status bar