fixed #189
This commit is contained in:
1 parent
f652cc20ea
commit
0062c68847
3 files changed
+14
-8
No files matched your search
@@ -7,7 +7,7 @@
|
|||||||
<hc:TransitioningContentControl>
|
<hc:TransitioningContentControl>
|
||||||
<StackPanel Margin="32" Orientation="Horizontal">
|
<StackPanel Margin="32" Orientation="Horizontal">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<hc:NumericUpDown/>
|
<hc:NumericUpDown Maximum="100"/>
|
||||||
<hc:NumericUpDown Margin="0,32,0,0" IsEnabled="False"/>
|
<hc:NumericUpDown Margin="0,32,0,0" IsEnabled="False"/>
|
||||||
<hc:NumericUpDown Margin="0,32,0,0" IsReadOnly="True"/>
|
<hc:NumericUpDown Margin="0,32,0,0" IsReadOnly="True"/>
|
||||||
|
|
||||||
|
|||||||
@@ -13,18 +13,23 @@ namespace HandyControl.Controls
|
|||||||
/// 数值选择控件
|
/// 数值选择控件
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[TemplatePart(Name = ElementTextBox, Type = typeof(TextBox))]
|
[TemplatePart(Name = ElementTextBox, Type = typeof(TextBox))]
|
||||||
|
[TemplatePart(Name = ElementErrorTip, Type = typeof(UIElement))]
|
||||||
public class NumericUpDown : Control, IDataInput
|
public class NumericUpDown : Control, IDataInput
|
||||||
{
|
{
|
||||||
#region Constants
|
#region Constants
|
||||||
|
|
||||||
private const string ElementTextBox = "PART_TextBox";
|
private const string ElementTextBox = "PART_TextBox";
|
||||||
|
|
||||||
|
private const string ElementErrorTip = "PART_ErrorTip";
|
||||||
|
|
||||||
#endregion Constants
|
#endregion Constants
|
||||||
|
|
||||||
#region Data
|
#region Data
|
||||||
|
|
||||||
private TextBox _textBox;
|
private TextBox _textBox;
|
||||||
|
|
||||||
|
private UIElement _errorTip;
|
||||||
|
|
||||||
private bool _updateText;
|
private bool _updateText;
|
||||||
|
|
||||||
#endregion Data
|
#endregion Data
|
||||||
@@ -77,6 +82,7 @@ namespace HandyControl.Controls
|
|||||||
base.OnApplyTemplate();
|
base.OnApplyTemplate();
|
||||||
|
|
||||||
_textBox = GetTemplateChild(ElementTextBox) as TextBox;
|
_textBox = GetTemplateChild(ElementTextBox) as TextBox;
|
||||||
|
_errorTip = GetTemplateChild(ElementErrorTip) as UIElement;
|
||||||
|
|
||||||
if (_textBox != null)
|
if (_textBox != null)
|
||||||
{
|
{
|
||||||
@@ -105,7 +111,7 @@ namespace HandyControl.Controls
|
|||||||
|
|
||||||
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
|
private void TextBox_LostFocus(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (IsError) return;
|
if (IsError && _errorTip != null) return;
|
||||||
_textBox.Text = CurrentText;
|
_textBox.Text = CurrentText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -158,10 +158,10 @@
|
|||||||
<ControlTemplate x:Key="NumericUpDownPlusTopTemplate" TargetType="controls:NumericUpDown">
|
<ControlTemplate x:Key="NumericUpDownPlusTopTemplate" TargetType="controls:NumericUpDown">
|
||||||
<ControlTemplate.Resources>
|
<ControlTemplate.Resources>
|
||||||
<Storyboard x:Key="StoryboardShow">
|
<Storyboard x:Key="StoryboardShow">
|
||||||
<ThicknessAnimation Storyboard.TargetName="TextBlockError" Storyboard.TargetProperty="Margin" To="9,0,0,-18" Duration="0:0:.2"/>
|
<ThicknessAnimation Storyboard.TargetName="PART_ErrorTip" Storyboard.TargetProperty="Margin" To="9,0,0,-18" Duration="0:0:.2"/>
|
||||||
</Storyboard>
|
</Storyboard>
|
||||||
<Storyboard x:Key="StoryboardHidden">
|
<Storyboard x:Key="StoryboardHidden">
|
||||||
<ThicknessAnimation Storyboard.TargetName="TextBlockError" Storyboard.TargetProperty="Margin" To="9,0,0,4" Duration="0:0:0"/>
|
<ThicknessAnimation Storyboard.TargetName="PART_ErrorTip" Storyboard.TargetProperty="Margin" To="9,0,0,4" Duration="0:0:0"/>
|
||||||
</Storyboard>
|
</Storyboard>
|
||||||
</ControlTemplate.Resources>
|
</ControlTemplate.Resources>
|
||||||
<Grid>
|
<Grid>
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition MinHeight="{Binding Path=(controls:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(controls:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Double2GridLengthConverter}}"/>
|
<RowDefinition MinHeight="{Binding Path=(controls:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(controls:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Double2GridLengthConverter}}"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<TextBlock FontSize="12" Text="{TemplateBinding ErrorStr}" Name="TextBlockError" VerticalAlignment="Bottom" Margin="9,0,0,4" Foreground="{DynamicResource DangerBrush}" Grid.Row="1"/>
|
<TextBlock FontSize="12" Text="{TemplateBinding ErrorStr}" Name="PART_ErrorTip" VerticalAlignment="Bottom" Margin="9,0,0,4" Foreground="{DynamicResource DangerBrush}" Grid.Row="1"/>
|
||||||
<StackPanel Grid.Row="0" Visibility="{Binding Path=(controls:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" Orientation="Horizontal" Margin="{TemplateBinding Padding}">
|
<StackPanel Grid.Row="0" Visibility="{Binding Path=(controls:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" Orientation="Horizontal" Margin="{TemplateBinding Padding}">
|
||||||
<TextBlock Foreground="{TemplateBinding Foreground}" Margin="1,0,0,0" Text="{Binding Path=(controls:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
|
<TextBlock Foreground="{TemplateBinding Foreground}" Margin="1,0,0,0" Text="{Binding Path=(controls:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
|
||||||
<ContentPresenter TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(controls:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(controls:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
|
<ContentPresenter TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(controls:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(controls:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
|
||||||
@@ -225,10 +225,10 @@
|
|||||||
<ControlTemplate x:Key="NumericUpDownPlusLeftTemplate" TargetType="controls:NumericUpDown">
|
<ControlTemplate x:Key="NumericUpDownPlusLeftTemplate" TargetType="controls:NumericUpDown">
|
||||||
<ControlTemplate.Resources>
|
<ControlTemplate.Resources>
|
||||||
<Storyboard x:Key="StoryboardShow">
|
<Storyboard x:Key="StoryboardShow">
|
||||||
<ThicknessAnimation Storyboard.TargetName="TextBlockError" Storyboard.TargetProperty="Margin" To="9,0,0,-18" Duration="0:0:.2"/>
|
<ThicknessAnimation Storyboard.TargetName="PART_ErrorTip" Storyboard.TargetProperty="Margin" To="9,0,0,-18" Duration="0:0:.2"/>
|
||||||
</Storyboard>
|
</Storyboard>
|
||||||
<Storyboard x:Key="StoryboardHidden">
|
<Storyboard x:Key="StoryboardHidden">
|
||||||
<ThicknessAnimation Storyboard.TargetName="TextBlockError" Storyboard.TargetProperty="Margin" To="9,0,0,4" Duration="0:0:0"/>
|
<ThicknessAnimation Storyboard.TargetName="PART_ErrorTip" Storyboard.TargetProperty="Margin" To="9,0,0,4" Duration="0:0:0"/>
|
||||||
</Storyboard>
|
</Storyboard>
|
||||||
</ControlTemplate.Resources>
|
</ControlTemplate.Resources>
|
||||||
<Grid MinHeight="{Binding Path=(controls:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(controls:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent}}">
|
<Grid MinHeight="{Binding Path=(controls:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(controls:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent}}">
|
||||||
@@ -236,7 +236,7 @@
|
|||||||
<ColumnDefinition Width="{Binding Path=(controls:InfoElement.TitleWidth),RelativeSource={RelativeSource TemplatedParent}}"/>
|
<ColumnDefinition Width="{Binding Path=(controls:InfoElement.TitleWidth),RelativeSource={RelativeSource TemplatedParent}}"/>
|
||||||
<ColumnDefinition/>
|
<ColumnDefinition/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<TextBlock FontSize="12" Text="{TemplateBinding ErrorStr}" Name="TextBlockError" VerticalAlignment="Bottom" Margin="9,0,0,4" Foreground="{DynamicResource DangerBrush}" Grid.Column="1"/>
|
<TextBlock FontSize="12" Text="{TemplateBinding ErrorStr}" Name="PART_ErrorTip" VerticalAlignment="Bottom" Margin="9,0,0,4" Foreground="{DynamicResource DangerBrush}" Grid.Column="1"/>
|
||||||
<StackPanel Grid.Column="0" Visibility="{Binding Path=(controls:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" Orientation="Horizontal" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="0,7,6,8">
|
<StackPanel Grid.Column="0" Visibility="{Binding Path=(controls:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" Orientation="Horizontal" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="0,7,6,8">
|
||||||
<TextBlock Foreground="{TemplateBinding Foreground}" Text="{Binding Path=(controls:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
|
<TextBlock Foreground="{TemplateBinding Foreground}" Text="{Binding Path=(controls:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
|
||||||
<ContentPresenter TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(controls:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(controls:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
|
<ContentPresenter TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(controls:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(controls:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
|
||||||
|
|||||||
Reference in new issue
Block a user