• 使用样式更改多个控件的外观


    若要对同一类型的多个控件应用相同的属性设置,则可以创建一个样式并将该样式应用于该控件。 样式基本上就是针对特定类型的属性设置的集合。 样式通常在 XAML 中定义。 样式的 targetType 决定样式适用的控件类型。 或者,可以通过使用 x:Key 属性为样式分配一个键,当声明类型时可以按名称引用该键。 有关样式的更多信息,请参见 Style

    您可以在代码中或使用设计器来将样式分配到控件。

    声明样式并将其应用于控件

    1. 在 XAML 文件中创建资源部分,如 Grid.Resources 或 StackPanel.Resources。

    2. 使用 x:Key 属性 添加 Style 元素。

    3. 将另一个 Setter 元素添加到 Style

    4. 在控件的 XAML 声明中,添加一个 Style 属性以及一个 StaticResource 标记扩展

      下面的示例演示如何在 XAML 中将样式声明为资源,为其分配一个键,以及将其应用于按钮控件。

       
      <StackPanel.Resources>
          <Style TargetType="Button" x:Key="myButtonStyle">
          <Setter Property="Background" Value="Purple" />
          <Setter Property="Foreground" Value="#9900FF" />
          <Setter Property="Height" Value="50" />
          <Setter Property="Width" Value="100" />
          <Setter Property="Margin" Value="5" />
          <Setter Property="HorizontalContentAlignment" Value="Center" />
          <Setter Property="VerticalContentAlignment" Value="Center" />
          <Setter Property="Cursor" Value="Hand" />
          <Setter Property="FontSize" Value="14" />
          </Style>
      </StackPanel.Resources>
      
      
      ...
      
      
      <Button x:Name="button3" Width="130" Content="Click Me Instead!" Style="{StaticResource myButtonStyle}"/>
      
      
      

    使用设计器将样式应用于控件

    1. 按前面步骤中所述,将样式创建为一个资源。

    2. 选择要应用样式的控件。

    3. 打开“属性”窗口并找到 Style 属性。

    4. 单击右侧的值列以打开“属性资源编辑器”。

    5. 展开“本地”部分并从列表中选择样式。

      在 XAML 中将一个 Style 属性以及一个 StaticResource 标记扩展添加到控件中。

    通过属性设置和样式,您可以只更改控件外观的某些方面。 若要完全更改控件的外观和行为,需要使用控件的模板。 在 XAML 中定义一个 ControlTemplate(内嵌或在单独的文件中),它包含控件的可视外观和可视行为。 若要更改控件的模板,当您创建样式时,请在 XAML 中设置 Template 属性。 大多数控件都具有默认的控件模板。 可以替换默认控件模板,也可以修改模板以添加、重新排列或删除控件的各个部分。 可以在控件样式和模板中找到控件的默认模板。 有关更改控件的模板的更多信息,请参见控件自定义通过使用 ControlTemplate 自定义现有控件的外观

  • 相关阅读:
    BZOJ2809: [Apio2012]dispatching
    BZOJ1455: 罗马游戏
    可并堆试水--BZOJ1367: [Baltic2004]sequence
    可并堆模板
    Codeforces870F. Paths
    Codeforces913F. Strongly Connected Tournament
    一练Splay之维修数列第一次
    Codeforces913E. Logical Expression
    Codeforces700C. Break Up
    可持久化KMP
  • 原文地址:https://www.cnblogs.com/xlyg-14/p/4274012.html
Copyright © 2020-2023  润新知