没有在某些控件上使用setter属性

本文关键字:setter 属性 控件 | 更新日期: 2023-09-27 18:12:01

我创建了<Style TargetType="Label">,我在所有标签上使用它。

但是有一个标签我不想用这个样式我只想保持默认值

有办法吗?

没有在某些控件上使用setter属性

<Label Style="{x:Null}"  />

不要认为UIElement上有DoNotApplyStyle布尔值之类的东西。你所能做的就是给这个特殊的标签赋予它自己独特的样式,模仿默认的样式。

<Label Text="Special label">
  <Label.Style>
    <Style>
      <Setter Property="FontSize" Value="11"/>
      ...
    </Style>
  </Label.Style>
</Label>

为不想使用隐式样式的对象创建一个命名样式,并将其赋值给它。

例如:

<Window x:Class="WpfApplication6.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" x:Name="MyWindow">
    <Window.Resources>
        <Style TargetType="Label">
            <Setter Property="Foreground" Value="Red"/>
        </Style>
        <Style x:Key="DefaultStyle" TargetType="Label"/>
    </Window.Resources>
    <StackPanel x:Name="MainCanvas">
        <Label>Sample 1</Label>
        <Label Style="{StaticResource DefaultStyle}">Sample 2</Label>
        <Label>Sample 3</Label>
    </StackPanel>
</Window>

在这个例子中,所有的标签都是红色的前景,除了那些你指定的DefaultStyle将有一个默认的风格(前景黑色)