2016-01-22 17 views
0

比方说,我有一个简单的极端XAML如下:可选应用多个样式

<UserControl 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 

    <UserControl.Resources> 
     <BooleanToVisibilityConverter x:Key="converter" /> 
     <Style TargetType="FrameworkElement" x:Key="maybeCollapsed"> 
      <Setter Property="Visibility" Value="{Binding Collapsed, Converter={StaticResource converter}}" /> 
     </Style> 
    </UserControl.Resources> 
    <StackPanel> 
     <Label FontWeight="Bold" Content="Header" x:Name="Header" /> 
     <TextBox Text="Name" Style="{StaticResource maybeCollapsed}" /> 
     <TextBox Text="{Binding Name1}" Style="{StaticResource maybeCollapsed}"/> 
    </StackPanel> 
</UserControl> 

我怎么能申请第二样式到使用maybeCollapsed风格的所有元素,设置IsTabStopFalse?我不能在风格本身做到这一点,因为IsTabStop不是FrameworkElements的成员。

回答

2

使用Control.IsTabStop代替

<Style TargetType="FrameworkElement" x:Key="maybeCollapsed"> 
     <Setter Property="Visibility" Value="{Binding Collapsed, Converter={StaticResource converter}}" /> 
     <Setter Property="Control.IsTabStop" Value="False" /> 
    </Style>