不在某些控件上使用setter属性

时间:2011-10-23 13:48:03

标签: c# wpf xaml

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

但有一个标签我不想在这里使用这个Style我只想保持默认。

有没有办法这样做?

3 个答案:

答案 0 :(得分:2)

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

应该做的伎俩

答案 1 :(得分:0)

只需为您不想拥有隐式样式的样式创建一个命名样式,并将其指定给它。

例如:

<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将具有默认样式(前景黑色)

答案 2 :(得分:0)

不要认为DoNotApplyStyle上有UIElement布尔值。你可以做的就是给它特殊的标签,它有自己独特的风格,模仿默认风格。

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