2012-05-08 31 views
0

我已經使用BackButtonStyle這是在StandardStyles.xaml中創建的(同時創建新的metro項目)。BackButtonStyle(metro應用程序中的StandardStyles.xaml的一部分)導致其他元素被禁用

問題是它禁用了其他控件。按鈕和滑塊禁用,無法調用。

當我刪除BackButtonStyle時,另一個按鈕/滑塊正常工作。

 <Grid Grid.Row="0"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
     <!--Style="{StaticResource BackButtonStyle}"--> 
     <Button x:Name="backButton" Click="GoBack" Style="{StaticResource BackButtonStyle}" Margin="10" >Back</Button> 
     <TextBlock Grid.Column="1" Text="Application settings" Foreground="White" FontSize="24" HorizontalAlignment="Center" Margin="10"/> 
     </Grid> 
     <StackPanel Grid.Row="1"> 

     <TextBlock Grid.Row="1" FontSize="14" Text="Toast Notification Interval (minutes) " Margin="10"/> 
     <Slider Grid.Row="2" x:Name="NotificationIntervalSlider" Minimum="1" Maximum="10"/> 
     <TextBlock Grid.Row="3" FontSize="14" x:Name="lblIntervalInfo" Margin="10"/> 
     <Button Grid.Row="4">Text</Button> 

BackButtonStyle低於(其是大的,在默認情況下提供)

 <Style x:Key="BackButtonStyle" TargetType="Button"> 
    <Setter Property="MinWidth" Value="0"/> 
    <Setter Property="Width" Value="48"/> 
    <Setter Property="Height" Value="48"/> 
    <Setter Property="Margin" Value="36,0,36,36"/> 
    <Setter Property="VerticalAlignment" Value="Bottom"/> 
    <Setter Property="FontFamily" Value="Segoe UI Symbol"/> 
    <Setter Property="FontWeight" Value="Normal"/> 
    <Setter Property="FontSize" Value="56"/> 
    <Setter Property="AutomationProperties.AutomationId" Value="BackButton"/> 
    <Setter Property="AutomationProperties.Name" Value="Back"/> 
    <Setter Property="AutomationProperties.ItemType" Value="Navigation Button"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Grid x:Name="RootGrid"> 
        <Grid Margin="-1,-16,0,0"> 
         <TextBlock x:Name="BackgroundGlyph" Text="&#xE0A8;" Foreground="{StaticResource BackButtonBackgroundBrush}"/> 
         <TextBlock x:Name="NormalGlyph" Text="{StaticResource BackButtonGlyph}" Foreground="{StaticResource BackButtonGlyphBrush}"/> 
         <TextBlock x:Name="ArrowGlyph" Text="&#xE0A6;" Foreground="{StaticResource BackButtonPressedGlyphBrush}" Opacity="0"/> 
        </Grid> 
        <Rectangle 
         x:Name="FocusVisualWhite" 
         IsHitTestVisible="False" 
         Stroke="{StaticResource FocusVisualWhiteStrokeBrush}" 
         StrokeEndLineCap="Square" 
         StrokeDashArray="1,1" 
         Opacity="0" 
         StrokeDashOffset="1.5"/> 
        <Rectangle 
         x:Name="FocusVisualBlack" 
         IsHitTestVisible="False" 
         Stroke="{StaticResource FocusVisualBlackStrokeBrush}" 
         StrokeEndLineCap="Square" 
         StrokeDashArray="1,1" 
         Opacity="0" 
         StrokeDashOffset="0.5"/> 

        <VisualStateManager.VisualStateGroups> 
         <VisualStateGroup x:Name="CommonStates"> 
          <VisualState x:Name="Normal" /> 
          <VisualState x:Name="PointerOver"> 
           <Storyboard> 
            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground"> 
             <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource BackButtonHoverBackgroundBrush}"/> 
            </ObjectAnimationUsingKeyFrames> 
            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="NormalGlyph" Storyboard.TargetProperty="Foreground"> 
             <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource BackButtonHoverGlyphBrush}"/> 
            </ObjectAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="Pressed"> 
           <Storyboard> 
            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGlyph" Storyboard.TargetProperty="Foreground"> 
             <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource BackButtonGlyphBrush}"/> 
            </ObjectAnimationUsingKeyFrames> 
            <DoubleAnimation 
             Storyboard.TargetName="ArrowGlyph" 
             Storyboard.TargetProperty="Opacity" 
             To="1" 
             Duration="0"/> 
            <DoubleAnimation 
             Storyboard.TargetName="NormalGlyph" 
             Storyboard.TargetProperty="Opacity" 
             To="0" 
             Duration="0"/> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="Disabled"> 
           <Storyboard> 
            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="RootGrid" Storyboard.TargetProperty="Visibility"> 
             <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> 
            </ObjectAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
         </VisualStateGroup> 
         <VisualStateGroup x:Name="FocusStates"> 
          <VisualState x:Name="Focused"> 
           <Storyboard> 
            <DoubleAnimation 
             Storyboard.TargetName="FocusVisualWhite" 
             Storyboard.TargetProperty="Opacity" 
             To="1" 
             Duration="0"/> 
            <DoubleAnimation 
             Storyboard.TargetName="FocusVisualBlack" 
             Storyboard.TargetProperty="Opacity" 
             To="1" 
             Duration="0"/> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="Unfocused" /> 
          <VisualState x:Name="PointerFocused" /> 
         </VisualStateGroup> 
        </VisualStateManager.VisualStateGroups> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
    </Style> 

我可以看到一些IsHitTestVisible=false,我已經手動移除並測試,然後也相同的水庫ULT。

+0

這是在設置的魅力?所有網格的定義是什麼?它有兩個行定義嗎? –

+0

是的,它被模擬在設置魅力。 我遵循http://devlicio.us/blogs/derik_whittaker/archive/2011/09/28/lighting-up-your-c-metro-apps-by-using-the-settings-contract.aspx。根據我的理解,用戶界面是主要應用程序的一部分,並通過設置符號顯示/隱藏(通過操縱邊距)事件。 因此它看起來好像是設置魅力的一部分,但事實上並非如此。 – Tilak

回答

1

你可以嘗試擺脫保證金和內容在這裏:

<Button x:Name="backButton" Click="GoBack" Style="{StaticResource BackButtonStyle}" Margin="10" >Back</Button> 

爲了讓

<Button 
    Click="GoBack" 
    Style="{StaticResource BackButtonStyle}" /> 
+0

這可以爲了簡潔起見。但與原始問題無關。 – Tilak

相關問題