views:

51

answers:

0

How to improve control template for custom numericupdown?

<Style TargetType="{x:Type Controls:FloatTextBoxPicker}" BasedOn="{StaticResource {x:Type TextBox}}">
  <Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="{x:Type Controls:FloatTextBoxPicker}">
            <DockPanel LastChildFill="True">
                <ScrollBar DockPanel.Dock="Right" Name="PART_ScrollBar" Value="0" HorizontalAlignment="Right"/>
                <Border Name="_border"
                        Background="{TemplateBinding Background}"  
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}">
                        <ScrollViewer SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
                                      x:Name="PART_ContentHost" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                </Border>
            </DockPanel>
            <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Background" TargetName="_border" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
                            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
        </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

But textbox look incorrect for classic style (this style VS TextBox): alt text

How to provide default TextBox rendering?

For WinXP style it looks correct, because Border have same visual settings like TextBox in WinXP theme:

alt text