为什么XAML资源与CSS样式不同?

Edw*_*uay 4 wpf resources xaml blend

在Expression Blend中,您可以创建一个18的字体大小,然后创建一个"font-size资源".

从HTML/CSS开始,我想不出什么时候我想为"font-size"创建一个样式,为"font-style"创建一个样式,为"font-weight"创建一个样式.相反,我想制作一个名为"CompanyHeader"的字体,并在其中设置10个不同的属性,例如字体粗细,字体样式,字体大小,颜色等.

为什么在Expression Blend,XAML中有所不同,为每个属性创建样式/资源的意义是什么?

此图显示了如何单击每个属性上的一个小按钮将其更改为资源: alt text http://tanguay.info/web/external/blendStyles.png

Nir*_*Nir 10

我没有使用Blend的经验,但XAML中的样式可以包含多个属性,更多的是,因为与css不同,您只能将一种样式应用于不能组合多个单属性样式的元素.

以下是设置多个属性的样式的示例:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Page.Resources>
      <Style x:Key="MyStyle" TargetType="{x:Type Label}">
         <Setter Property="Width" Value="125"/>
         <Setter Property="Height" Value="25"/>
         <Setter Property="Background" Value="Red"/>
      </Style>
   </Page.Resources>
   <Label Style="{StaticResource MyStyle}"/>
</Page>
Run Code Online (Sandbox Code Playgroud)

请注意,如果我想将样式分解为3个较小的样式,每个样式设置一个属性我无法使用它们,因为Label的Style属性只能接受一种样式.

  • 但是您可以将样式拆分为3个StaticResources并在MyStyle中引用它们并在其他地方重用它们...... (2认同)