2017-08-24 67 views
1

有没有人有一个想法,为什么焦点枢轴项目上的蓝色下划线不可见? XAML中(与.NET 2.0芯新创建的空UWP的应用程序,VS 2017 15.3.2)是简单的这样的:UWP枢轴:没有关于焦点枢轴项目的蓝色下划线

<Pivot> 
    <PivotItem Header="Testt 1">Test 1</PivotItem> 
    <PivotItem Header="Testt 2">Test 2</PivotItem> 
    <PivotItem Header="Testt 3">Test 3</PivotItem> 
</Pivot> 

和MS是说,“默认情况下,键盘焦点在枢轴头是用下划线表示。“ (https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/tabs-pivot

启动后很少几次,它在第一个数据项上出现,但在点击另一个数据后却消失了。

+1

“启动后很少几次,它在第一个数据项上出现,但在点击另一个数据后却消失了。”如果你在它们之间选择而不是点击呢?毕竟它确实说了键盘焦点。如果在创业之后还没有做任何事情,我也会感到惊讶。 – BoltClock

+0

啊,你是对的,那么它就会出现!我怎样才能让它显示点击/窃听? – IngoB

回答

1

PivotHeaderItem的风格中,有一个Rectangle,称为FocusPipe,它是您在键盘导航期间看到的焦点视觉效果。默认情况下,只有当它处于Focused状态时才可见。

如果要使其可见,只需在SelectedSelectedPressedSelectedPointerOver状态设置其VisibilityVisible

<Application.Resources> 
    <Style TargetType="PivotHeaderItem"> 
     <Setter Property="FontSize" 
       Value="{ThemeResource PivotHeaderItemFontSize}" /> 
     <Setter Property="FontFamily" 
       Value="{ThemeResource PivotHeaderItemFontFamily}" /> 
     <Setter Property="FontWeight" 
       Value="{ThemeResource PivotHeaderItemThemeFontWeight}" /> 
     <Setter Property="CharacterSpacing" 
       Value="{ThemeResource PivotHeaderItemCharacterSpacing}" /> 
     <Setter Property="Background" 
       Value="{ThemeResource PivotHeaderItemBackgroundUnselected}" /> 
     <Setter Property="Foreground" 
       Value="{ThemeResource PivotHeaderItemForegroundUnselected}" /> 
     <Setter Property="Padding" 
       Value="{ThemeResource PivotHeaderItemMargin}" /> 
     <Setter Property="Height" 
       Value="48" /> 
     <Setter Property="VerticalContentAlignment" 
       Value="Center" /> 
     <Setter Property="IsTabStop" 
       Value="False" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="PivotHeaderItem"> 
        <Grid x:Name="Grid" 
          Background="{TemplateBinding Background}" 
          Padding="{TemplateBinding Padding}"> 
         <VisualStateManager.VisualStateGroups> 
          <VisualStateGroup x:Name="SelectionStates"> 
           <VisualStateGroup.Transitions> 
            <VisualTransition From="Unselected" 
                 To="UnselectedLocked" 
                 GeneratedDuration="0:0:0.33" /> 
            <VisualTransition From="UnselectedLocked" 
                 To="Unselected" 
                 GeneratedDuration="0:0:0.33" /> 
           </VisualStateGroup.Transitions> 
           <VisualState x:Name="Disabled"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" 
                     Storyboard.TargetProperty="Foreground"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemForegroundDisabled}" /> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" 
                     Storyboard.TargetProperty="Background"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemBackgroundDisabled}" /> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="Unselected" /> 
           <VisualState x:Name="UnselectedLocked"> 
            <Storyboard> 
             <DoubleAnimation Storyboard.TargetName="ContentPresenterTranslateTransform" 
                 Storyboard.TargetProperty="X" 
                 Duration="0" 
                 To="{ThemeResource PivotHeaderItemLockedTranslation}" /> 
             <DoubleAnimation Storyboard.TargetName="ContentPresenter" 
                 Storyboard.TargetProperty="(UIElement.Opacity)" 
                 Duration="0" 
                 To="0" /> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="Selected"> 
            <VisualState.Setters> 
             <Setter Target="FocusPipe.Visibility" 
               Value="Visible" /> 
            </VisualState.Setters> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" 
                     Storyboard.TargetProperty="Foreground"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemForegroundSelected}" /> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" 
                     Storyboard.TargetProperty="Background"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemBackgroundSelected}" /> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="UnselectedPointerOver"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" 
                     Storyboard.TargetProperty="Foreground"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemForegroundUnselectedPointerOver}" /> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" 
                     Storyboard.TargetProperty="Background"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemBackgroundUnselectedPointerOver}" /> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="SelectedPointerOver"> 
            <VisualState.Setters> 
             <Setter Target="FocusPipe.Visibility" 
               Value="Visible" /> 
            </VisualState.Setters> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" 
                     Storyboard.TargetProperty="Foreground"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemForegroundSelectedPointerOver}" /> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" 
                     Storyboard.TargetProperty="Background"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemBackgroundSelectedPointerOver}" /> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="UnselectedPressed"> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" 
                     Storyboard.TargetProperty="Foreground"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemForegroundUnselectedPressed}" /> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" 
                     Storyboard.TargetProperty="Background"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemBackgroundUnselectedPressed}" /> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
           <VisualState x:Name="SelectedPressed"> 
            <VisualState.Setters> 
             <Setter Target="FocusPipe.Visibility" 
               Value="Visible" /> 
            </VisualState.Setters> 
            <Storyboard> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" 
                     Storyboard.TargetProperty="Foreground"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemForegroundSelectedPressed}" /> 
             </ObjectAnimationUsingKeyFrames> 
             <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid" 
                     Storyboard.TargetProperty="Background"> 
              <DiscreteObjectKeyFrame KeyTime="0" 
                    Value="{ThemeResource PivotHeaderItemBackgroundSelectedPressed}" /> 
             </ObjectAnimationUsingKeyFrames> 
            </Storyboard> 
           </VisualState> 
          </VisualStateGroup> 
          <VisualStateGroup x:Name="FocusStates"> 
           <VisualState x:Name="Focused"> 
            <VisualState.Setters> 
             <Setter Target="FocusPipe.Visibility" 
               Value="Visible" /> 
            </VisualState.Setters> 
           </VisualState> 
           <VisualState x:Name="Unfocused" /> 
          </VisualStateGroup> 
         </VisualStateManager.VisualStateGroups> 
         <Grid.RenderTransform> 
          <TranslateTransform x:Name="ContentPresenterTranslateTransform" /> 
         </Grid.RenderTransform> 
         <ContentPresenter x:Name="ContentPresenter" 
              Content="{TemplateBinding Content}" 
              ContentTemplate="{TemplateBinding ContentTemplate}" 
              FontSize="{TemplateBinding FontSize}" 
              FontFamily="{TemplateBinding FontFamily}" 
              FontWeight="{TemplateBinding FontWeight}" 
              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
              VerticalAlignment="{TemplateBinding VerticalContentAlignment}" 
              OpticalMarginAlignment="TrimSideBearings" /> 
         <Rectangle x:Name="FocusPipe" 
            Fill="{ThemeResource PivotHeaderItemFocusPipeFill}" 
            Height="2" 
            VerticalAlignment="Bottom" 
            HorizontalAlignment="Stretch" 
            Visibility="Collapsed" /> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</Application.Resources> 
+1

太棒了,它的作品!非常感谢。 :) – IngoB