TextBox的错误验证动画太慢
TextBox's error validation animation is too slow
我正在使用 Mahaaps.Metro AnimatedTabControl
。当我从一个选项卡切换到另一个选项卡时,我可以看到 AdornedElementPlaceholder
上的缓慢转换。这是屏幕截图:
我正在使用 MahApps metro 动画标签转换。
XAML:
<TextBox Style="{StaticResource EditValueStyle}" Visibility="{Binding ManualDimmingVisibility}" Text="{Binding ManualDampingValue, NotifyOnValidationError=true, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}" />
<TextBox Style="{StaticResource EditValueStyle}" Text="{Binding SignalIntensity, NotifyOnValidationError=true, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Left" Height="22" />
<Style x:Key="EditValueStyle" TargetType="TextBox">
<Setter Property="Control.HorizontalAlignment" Value="Left" />
<Setter Property="Control.VerticalAlignment" Value="Center" />
<Setter Property="Control.Height" Value="Auto" />
<Setter Property="Control.HorizontalContentAlignment" Value="Right" />
<Setter Property="Control.VerticalContentAlignment" Value="Center" />
<Setter Property="Control.Foreground" Value="#333" />
<Setter Property="Control.Width" Value="60" />
<Setter Property="Control.FontSize" Value="14" />
<Setter Property="MaxLength" Value="8"></Setter>
<Setter Property="Control.Margin" Value="0,0,15,0" />
<Setter Property="Control.FontFamily" Value="Segoe UI Symbol" />
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel LastChildFill="true">
<Border Background="Red" DockPanel.Dock="right" Margin="3,0,0,0" Width="15" Height="15" CornerRadius="10" ToolTip="{Binding ElementName=customAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
<TextBlock Text="!" VerticalAlignment="center" HorizontalAlignment="center" FontWeight="Bold" Foreground="white">
</TextBlock>
</Border>
<AdornedElementPlaceholder Name="customAdorner" VerticalAlignment="Center" >
<Border BorderBrush="red" BorderThickness="1" />
</AdornedElementPlaceholder>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
您应该用 AdornerDecorator
包围您的内容以避免此问题。
<AdornerDecorator>
<!-- Your content -->
</AdornerDecorator>
而且,也许您忘记了从 MahApps 样式继承 TextBox 样式。
<Style x:Key="EditValueStyle" TargetType="TextBox" BasedOn="{StaticResource MetroTextBox}">
<!-- Your custom style changes -->
</Style>
我正在使用 Mahaaps.Metro AnimatedTabControl
。当我从一个选项卡切换到另一个选项卡时,我可以看到 AdornedElementPlaceholder
上的缓慢转换。这是屏幕截图:
我正在使用 MahApps metro 动画标签转换。
XAML:
<TextBox Style="{StaticResource EditValueStyle}" Visibility="{Binding ManualDimmingVisibility}" Text="{Binding ManualDampingValue, NotifyOnValidationError=true, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}" />
<TextBox Style="{StaticResource EditValueStyle}" Text="{Binding SignalIntensity, NotifyOnValidationError=true, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=true}" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Left" Height="22" />
<Style x:Key="EditValueStyle" TargetType="TextBox">
<Setter Property="Control.HorizontalAlignment" Value="Left" />
<Setter Property="Control.VerticalAlignment" Value="Center" />
<Setter Property="Control.Height" Value="Auto" />
<Setter Property="Control.HorizontalContentAlignment" Value="Right" />
<Setter Property="Control.VerticalContentAlignment" Value="Center" />
<Setter Property="Control.Foreground" Value="#333" />
<Setter Property="Control.Width" Value="60" />
<Setter Property="Control.FontSize" Value="14" />
<Setter Property="MaxLength" Value="8"></Setter>
<Setter Property="Control.Margin" Value="0,0,15,0" />
<Setter Property="Control.FontFamily" Value="Segoe UI Symbol" />
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel LastChildFill="true">
<Border Background="Red" DockPanel.Dock="right" Margin="3,0,0,0" Width="15" Height="15" CornerRadius="10" ToolTip="{Binding ElementName=customAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
<TextBlock Text="!" VerticalAlignment="center" HorizontalAlignment="center" FontWeight="Bold" Foreground="white">
</TextBlock>
</Border>
<AdornedElementPlaceholder Name="customAdorner" VerticalAlignment="Center" >
<Border BorderBrush="red" BorderThickness="1" />
</AdornedElementPlaceholder>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
您应该用 AdornerDecorator
包围您的内容以避免此问题。
<AdornerDecorator>
<!-- Your content -->
</AdornerDecorator>
而且,也许您忘记了从 MahApps 样式继承 TextBox 样式。
<Style x:Key="EditValueStyle" TargetType="TextBox" BasedOn="{StaticResource MetroTextBox}">
<!-- Your custom style changes -->
</Style>