2012-08-07 2 views
0

J'ai un contrôle NumericUpDown dans Silverlight que je ne veux pas avoir de spinner.SpinnerStyle ne fonctionne pas sur Silverlight NumericUpDownControl

<Style x:Key="NoSpinner" TargetType="toolkit:Spinner"> 
    <Setter Property="Visibility" Value="Collapsed" /> 
</Style> 

le contrôle:

<toolkit:NumericUpDown SpinnerStyle="{StaticResource NoSpinner}" /> 

Mais la fileuse montre encore! Je le fais de la façon dont l'auteur de ce contrôle suggests (link).

Je sais que la ressource est trouvée. Aucune erreur n'est donnée, et je suis capable d'appliquer d'autres styles définis dans la même zone.

+0

Je faisais ceci comme une tentative de réduire le nombre d'onglets nécessaires pour éditer le contenu du contrôle/onglet passé le contrôle. Ma réponse reformule le contrôle pour faire de la zone de texte le seul onglet. – Ethan

Répondre

0

Je n'avais pas de fusion, ce qui rend très difficile la modification des modèles de ces contrôles si vous n'avez pas accès à ce qu'est le modèle standard. La solution consistait à obtenir une copie de prévisualisation du mélange et à l'utiliser pour redimensionner le contrôle.

<Style TargetType="toolkit:NumericUpDown" x:Key="InputNumericUpDown"> 
    <Setter Property="Width" Value="111" /> 
    <Setter Property="Height" Value="23" /> 
    <Setter Property="IsTabStop" Value="False" /> 
    <Setter Property="HorizontalAlignment" Value="Left" /> 
    <Setter Property="Margin" Value="5,0,0,5"/>  
    <Setter Property="Template"><!-- This template was generated in Blend --> 
     <Setter.Value> 
      <ControlTemplate TargetType="toolkit:NumericUpDown"> 
       <Grid> 
        <VisualStateManager.VisualStateGroups> 
         <VisualStateGroup x:Name="CommonStates"> 
          <VisualStateGroup.Transitions> 
           <VisualTransition GeneratedDuration="0"/> 
          </VisualStateGroup.Transitions> 
          <VisualState x:Name="Normal"/> 
          <VisualState x:Name="Disabled"> 
           <Storyboard> 
            <DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="DisabledVisualElement"/> 
           </Storyboard> 
          </VisualState> 
         </VisualStateGroup> 
         <VisualStateGroup x:Name="FocusStates"> 
          <VisualState x:Name="Focused"> 
           <Storyboard> 
            <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualElement"> 
             <SplineDoubleKeyFrame KeyTime="0" Value="1"/> 
            </DoubleAnimationUsingKeyFrames> 
           </Storyboard> 
          </VisualState> 
          <VisualState x:Name="Unfocused"/> 
         </VisualStateGroup> 
        </VisualStateManager.VisualStateGroups> 
        <toolkit:ButtonSpinner x:Name="Spinner" HorizontalContentAlignment="Stretch" MinWidth="35" VerticalContentAlignment="Stretch" IsTabStop="False"> 
         <TextBox x:Name="Text" AcceptsReturn="False" BorderThickness="0" Foreground="{TemplateBinding Foreground}" FontWeight="{TemplateBinding FontWeight}" FontStyle="{TemplateBinding FontStyle}" FontStretch="{TemplateBinding FontStretch}" FontSize="{TemplateBinding FontSize}" FontFamily="{TemplateBinding FontFamily}" MinWidth="20" TextAlignment="Right" TextWrapping="NoWrap" Text="{TemplateBinding Value}" IsTabStop="True"> 
          <TextBox.Style> 
           <Style TargetType="TextBox"> 
            <Setter Property="Template"> 
             <Setter.Value> 
              <ControlTemplate TargetType="TextBox"> 
               <ScrollViewer x:Name="ContentElement" BorderThickness="0" Padding="0"/> 
              </ControlTemplate> 
             </Setter.Value> 
            </Setter> 
           </Style> 
          </TextBox.Style> 
         </TextBox> 
        </toolkit:ButtonSpinner> 
        <Border x:Name="DisabledVisualElement" Background="#A5FFFFFF" CornerRadius="2.5,2.5,2.5,2.5" IsHitTestVisible="false" Opacity="0"/> 
        <Border x:Name="FocusVisualElement" BorderBrush="#FF45D6FA" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="1,1,1,1" IsHitTestVisible="False" Opacity="0"/> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

La partie du modèle est la seule partie qui venait de mélange, mais ce style est ce que je me sers pour NumericUpDowns pour le rendre à l'endroit où vous tabulez une fois pour le contrôle et une fois pour sortir.

Questions connexes