2012-07-30 56 views
2

的背景,我有以下XAML:設置的NumericUpDown

<toolkit:NumericUpDown Background="White"/> 

然而,這並不改變控件的背景色。我已經嘗試爲SpinnerTemplate指定背景,但這也不起作用。有沒有什麼辦法可以讓這個控件有一個背景,而不必製作一個新的模板?

回答

2

無需製作新模板?我不這麼認爲。

這是否做你需要完成的?

<toolkit1:NumericUpDown Background="Red" HorizontalAlignment="Left" VerticalAlignment="Top"> 
    <toolkit1:NumericUpDown.Resources> 
     <Style x:Key="NumericUpDownStyle1" TargetType="toolkit1:NumericUpDown"> 
      <Setter Property="BorderThickness" Value="1"/> 
      <Setter Property="Height" Value="22"/> 
      <Setter Property="BorderBrush"> 
       <Setter.Value> 
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
         <GradientStop Color="#FFA3AEB9" Offset="0"/> 
         <GradientStop Color="#FF8399A9" Offset="0.375"/> 
         <GradientStop Color="#FF718597" Offset="0.375"/> 
         <GradientStop Color="#FF617584" Offset="1"/> 
        </LinearGradientBrush> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="toolkit1:NumericUpDown"> 
         <Grid Background="{TemplateBinding Background}"> 
          <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> 
          <toolkit1:ButtonSpinner x:Name="Spinner" HorizontalContentAlignment="Stretch" MinWidth="35" VerticalContentAlignment="Stretch"> 
           <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}"> 
            <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> 
          </toolkit1: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> 
    </toolkit1:NumericUpDown.Resources> 
    <toolkit1:NumericUpDown.Style> 
     <StaticResource ResourceKey="NumericUpDownStyle1"/> 
    </toolkit1:NumericUpDown.Style> 
</toolkit1:NumericUpDown> 

重點線是:

<Grid Background="{TemplateBinding Background}"> 

您可以雀巢這種風格客場資源字典,如果你打算要經常這樣做。

+1

哇這真的很糟糕。我想我會自己實施控制。 – LueTm 2012-07-30 21:04:30

+0

我知道它看起來很亂,但它真的是99%的默認模板。所有代碼都是在Blend中生成的,我只是將頂級網格背景顏色更改爲綁定到您在控件級別設置的顏色。 – 2012-07-31 09:46:14